본문 바로가기
파이썬 (Python)/딥러닝 (Deep Learning)

Python opencv 이용하여 이미지 색상 흑백으로 바꾸기

by ★√★ 2021. 2. 23.

안녕하세요, Davey입니다. 오늘 포스팅할 내용은 opencv로 불러온 이미지를 흑백 색상으로 변화시키는 방법에 대해서 설명해 드리겠습니다. 나중에 이미지를 가지고 머신러닝이나 사물 인식하는 용도로 사용할 때 꼭 필요한 기능입니다.

 

 

 

opencv 이용하여 이미지 색상 흑백으로 바꾸기

 : 위에서 애기 드린 대로, 보통 처음 opencv 를 접하고 이 회색으로 바꾸는 코드를 접하게 되면 의문을 가지게 됩니다. 왜 다른 색깔이 아닌 회색으로 하는 건지. 나중에 흑/백으로 구분하여 이미지 인식 및 딥러닝을 위해서 하는 기초 코드입니다. 나중에 딥러닝을 구현하게 되면 그때 다시 설명드리도록 하겠습니다. 

- 아래 코드를 이용하여 이미지를 회색으로 바꾸실 수 있습니다. 

 

코드 분석

1) cv2.cvtColor(불러온 이미지, 변환하려는 색상 속성 값) : 불러온 이미지를 COLOR_BGR2GRAY라는 속성 값으로 변환

 

# opencv 라이브러리 호출
import cv2

# 원본 이미지를 불러옴
test_read = cv2.imread("002.jpg", cv2.IMREAD_COLOR)

# 색상 Gray로 변환
gray_tr1 = cv2.cvtColor(test_read, cv2.COLOR_BGR2GRAY)

 

opencv로 회색 색상 변환한 이미지 출력하기

: 위의 코드를 이용하여 회색 색상으로 바꾼 이미지를 출력해보도록 하겠습니다. 일단 출력되는 회색 색상의 이미지를 비교하기 위해 원본 이미지도 같이 출력하도록 하겠습니다. 출력하는 코드는 아래와 같습니다. 그리고 출력한 이미지 결과값도 같이 첨부 드리도록 하겠습니다.
#원본 이미지와 회색으로 변환 이미지를 출력
cv2.imshow("Original Photo", test_read)
cv2.imshow("Gray Color Photo", gray_tr1)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

- 이전 포스팅에서 어느 부분에서 제가 channel에 대해서 잘 모르겠다고 한 거 기억나시나요?! 이번에 그 channel을 정리해보도록 하겠습니다. print를 통해서 출력되는 게 수치였거든요. 그 수치 범위를 구분해보았습니다. 그리고 추가적으로 색상 공간 코드도 정리해보았습니다.

 

1) CV_8U 이미지 범위 : 0 ~ 255

2) CV_16U 이미지의 범위 : 0 ~ 65535

3) CV_32F 이미지의 범위 : 0 ~ 1

 

색상 공간 코드

색상 공간 코드 속성

의미

비고

BGR

Blue, Green, Red 채널

-

BGRA

Blue, Green, Red, Alpha 채널

-

RGB

Red, Green, Blue 채널

-

RGBA

Red, Green, Blue, Alpha 채널

-

GRAY

단일 채널

그레이스케일

BGR565

Blue, Green, Red 채널

16 비트 이미지

XYZ

X, Y, Z 채널

CIE 1931 공간

YCrCb

Y, Cr, Cb 채널

YCC (크로마)

HSV

Hue, Saturation, Value 채널

색상, 채도, 명도

Lab

L, a, b 채널

반사율, 색도색도 1, 색도2

Luv

L, u, v 채널

CIE Luv

HLS

Hue, Lightness, Saturation 채널

색상, 밝기, 채도

YUV

Y, U, V 채널

밝기, 색상색상 1, 색상2

BG, GB, RG

디 모자가 킹

단일 색상 공간으로 변경

_EA

디 모자가 킹

가장자리 인식

_VNG

디 모자가 킹

그러데이션사용

 [색상 속성값에 다른 색상 공간 코드 조합하여 사용할 있습니다. BGR2GRAY는 Blue, Green, Red 채널 이미지를 단일 채널, 그레이스케일 이미지로 변경하는데 이용했다라고 생각하시면]

 

 

맺음말

 

: 이상입니다. 이번 포스팅은 Python opencv 이용하여 불러온 이미지의 색상을 흑백으로 바꾸는 코드를 구현해보았습니다. 이전에는 이 흑백으로 구현하는 코드 먼저 습득하였습니다. 왜냐하면, 제가 하고 싶은 거는 이미지 인식 및 인식한 정보를 머신러닝 하는 것이어였습니다. 그런데 기초부터 공부하고 싶은 생각이 들어서 이렇게 하나하나 공부하고 있습니다. 그럼 이만 마무리하도록 하겠습니다. 감사합니다. 

 

제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁드립니다. 감사합니다.


[저작권이나권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다검토  수정  삭제 조치하도록 하겠습니다그리고기재되는 내용은 개인적으로 습득한 내용이므로 오류가 발생할  있을 가능성이 있으므로기재된 내용은 참조용으로만 봐주시길 바랍니다게시물에오류가 있을 때도, Comment 달아 주시면검증 결과를 통해수정하도록 하겠습니다.]

 

728x90

댓글