4장. 채널 처리와 히스토그램 분석
정리
- 컬러 그림은 B, G, R 셀로판지 세 장을 겹친 것입니다. 채널 하나를 떼어 내면 흑백 그림 한 장이 됩니다.
cv2.split은 복사본 세 장을 돌려주고,cv2.merge는 넣는 순서대로 B, G, R 자리에 겹칩니다. 인덱싱(img[:, :, 0])은 원본을 보는 창이라 고치면 원본도 바뀝니다.- 채널 하나는 흑백으로, 또는 나머지 채널을 0 으로 채워 그 색으로 볼 수 있습니다. merge 의 순서를 바꾸면 색이 바뀝니다.
cv2.mean의 B, G, R 평균으로 색 경향을 읽습니다. 노을은 R 185.5 가 B 61.1 보다 커서 따뜻함, 호수는 B 200.2 가 R 104.2 보다 커서 차가움, 숲은 G 161.3 이 가장 컸습니다.- 히스토그램은 밝기를 구간으로 나눠 칸 수를 센 막대그래프입니다.
cv2.calcHist([그림], [채널], 마스크, [구간 수], [0, 256])의 결과는 OpenCV 5.0 에서 (구간 수,) 모양(4.x 는 (구간 수, 1))이고np.histogram과 같은 값을 셉니다. 판에 상관없이 쓰려면ravel()로 폅니다. - 평균은 막대가 모인 자리, 표준편차는 퍼진 너비입니다. 거리 장면에서 어두움은 평균 41.9, 밝음은 203.9 였고, 대비 낮음은 평균이 125.2 로 정상(121.4)과 비슷했지만 표준편차가 20.3 으로 정상(68.3)보다 훨씬 작았습니다.
- 마스크의 흰 칸만 세면 관심 있는 곳만의 히스토그램과 평균을 얻습니다. 진단한 사진은 5장에서 평활화와 CLAHE 로 고칩니다.