728x90

스파르타 코딩클럽의 딥러닝 이미지 처리 수업을 기반으로 공부한 내용을 정리하고 있습니다.

 

흑백 사진 전체를 컬러 처리하는 해당 practice 참고

전체 이미지를 컬러처리 하는 코드에서 imshow로 이미지를 출력하기 전에 아래의 코드들을 활용한다.

 

마스크 만들기

1
2
3
4
#처리 원하는 부분에 마스크 만들기
mask = np.zeros_like(img, dtype='uint8')
mask = cv2.circle(mask, center=(260260), radius=200, color=(111), thickness=-1)
 
cs

-> 마스크란 우리가 생각하는 그 마스크가 아닌, 처리를 원하는 특정 부분을 마스킹한다는 의미이다.

numpy 의 zeros_like 함수를 써서 img(원본이미지)와 같은 크기의 0으로 채워진 이미지를 만들건데, 사람 눈으로 보면 검은색 이미지다.

그리고 cv2.circle() 사용하여 마스크 위에 원을 그려줄 건데, 원의 중심은 (260, 260) 이고 반지름은 200 색깔은 BGR (1, 1, 1)이다.

실제로 mask 를 cv2.imshow() 함수를 사용해서 출력해보면 검은색 이미지 밖에 나오지 않아요. 왜냐하면 (1, 1, 1) 컬러는 거의 검은색에 가깝기 때문이지요. 위의 이미지는 이해를 돕기위해 검은색과 흰색으로 처리한 것입니다!

 

그레이스케일 이미지와 컬러처리 이미지 합성

1
2
3
4
5
6
7
color = output_bgr * mask #컬러처리 한거
gray = img * (1 - mask) #컬러 복원하고싶지 않은 것
 
output2 = color + gray
 
cv2.imshow('result2', output2)
 
cs

 

 

728x90

+ Recent posts