반응형
YIQ란?
- YIQ는 NTSC TV 신호에서 사용된 색 공간(Color Space)
- 아날로그 TV 방송에서 흑백 TV와 컬러 TV를 동시에 지원하기 위해 설계됨
- RGB보다 밝기와 색상 정보가 분리되어 있음 → 밝기 기반 이미지 처리에 유용
- Y(Luminance, 밝기), I(In-phase, 색상 성분), Q(Quadrature, 색상 성분)로 구성됨
YIQ의 구성 요소
- Y (Luminance, 밝기) : 이미지의 밝기(명도) 정보 (흑백 TV에서도 사용 가능)
- I (In-phase, 색상 차 성분 1) : 주황색(Orange) ↔ 청록색(Cyan) 색상 정보
- Q (Quadrature, 색상 차 성분 2) : 자홍색(Magenta) ↔ 녹색(Green) 색상 정보
YIQ와 RGB 변환 공식
- RGB → YIQ 변환 : Y=0.299R+0.587G+0.114BI=0.596R−0.275G−0.321BQ=0.212R−0.523G+0.311B
- YIQ → RGB 변환 : R=Y+0.956I+0.621QG=Y−0.272I−0.647QB=Y−1.106I+1.703Q
어두운 계열인지 밝은 계열인지 판별
fun isDarkTheme(color: Int): Boolean {
val darkness = 1 - (Color.red(color) * 0.299 + Color.green(color) * 0.587 + Color.blue(color) * 0.114) / 255
return darkness >= 0.5 // 어두운 색이면 true, 밝은 색이면 false
}
반응형