반응형

파이썬, opencv, 이미지 그레이스케일 변환 및 보기

 

글. 오상문 sualchi@daum.net

 

opencv는 이미지를 처리하는 오픈소스 라이브러리이며 파이썬 언어도 지원한다. 예제를 실행하려면 먼저 opencv를 설치해야 한다(pip install opencv-python).

 

예제를 실행하면 이미지 처리하고 원본 이미지와 변환된 이미지를 다른 창에 보여준다. 10초 후 또는 스페이스바/ 엔터 키 등을 누르면 이미지 창이 닫힌다.

 

 

 

다음은 예제에서 이미지를 가져오는 코드이다. 먼저 이미지를 가져오고(원본), 그것을 그레이스케일 옵션으로 변경한 이미지를 따로 만든다.

 

img_src = cv2.imread(filename)     # 이미지 파일 읽어오기

# 흑백 명암(그레이스케일)으로 이미지를 변환
img = cv2.cvtColor(img_src, cv2.COLOR_BGR2GRAY) 

 

만약 그레이스케일 이미지만 필요하면 위 두 줄은 아래처럼 한 줄로 처리할 수 있다.

# 이미지를 가져오면서 그레이스케일 처리
img = cv2.imread(filename, cv2.IMREAD_GRAYSCALE) 

 

 

[참고] 이미지를 파일에 저장하기

cv2.imwrite(r"c:\temp\image_gray.jpg", img)     

 

 

예제 코드는 다음과 같다. (실행하려면 opencv 패키지가 설치되어 있어야 한다.)

 

#---------------------------------------------------------------

 

import cv2

 

filename = r"c:\temp\test.jpg"        # 파일 이름과 경로

 

# 이미지 파일 읽어오기

img_src = cv2.imread(filename)        

# 흑백 명암(그레이스케일)으로 이미지를 변환
img = cv2.cvtColor(img_src, cv2.COLOR_BGR2GRAY) 

 

# 아래 줄처럼 이미지를 가져오면서 그레이스케일 처리하는 방법도 있다. 
#  img = cv2.imread(filename, cv2.IMREAD_GRAYSCALE)

 

# 첫 번째 윈도우 생성한다.

cv2.namedWindow("image viewer1", cv2.WINDOW_NORMAL)

# 이미지 원본을 보여준다.
cv2.imshow("image viewer1", img_src)  

 

# 두 번째 윈도우 생성한다.

cv2.namedWindow("image viewer2", cv2.WINDOW_NORMAL)

# 변환된 이미지를 보여준다.
cv2.imshow("image viewer2", img)  

 

10초 기다린다. # 단 스페이스바, 엔터 키 등이 입력되면 바로 종료한다.


cv2.waitKey(10000)  

 

# 이미지 윈도우를 닫고 종료한다.
cv2.destroyAllWindows()   

 

<이상>

반응형

+ Recent posts