본문 바로가기
언어/python3

[파이썬/python] 파이썬 영상처리, OpenCV로 흑백사진 만들기

by Godgil 2020. 3. 23.

파이썬 OpneCv를 활용해서 컬러사진을 흑백사진으로 만들고 저장하기.

 

첫 수업이 시작되고 첫 과제가 나왔다.

 

물론 코로나로 인해서, 싸강으로 진행되었다. 설레는 마음으로 등교하고 싶었는데 아쉽게 되었다.

 

첫 과제의 메인 문제는, 간단했는데, 거의 출석 확인용이었다.

 

그래도 복습할 겸 기록으로 남겨보려고 한다.

 

내용은 이제 컬러사진이 주어지는데 이 사진을 우리가 알고있는 흑백사진으로 바꾸고, 이걸 저장하는 문제였다.

 

코드는 간단하다.

 

먼저 openCv모듈을 설치 해 줘야 하는데, 이 과정은 따로 포스팅을 해야겠다.

 

opencv를 설치 했으면 이제 불러오고 코드를 짜 주면 된다.

 

흑백으로 처리해야 할 사진은 이 사진이다.

 

lena라는 사진인데 영상처리 쪽에서는 매우 유명한 사진이라 한다.

이 사진을 

이처럼 바꿔주는 것이다.

 

검색하면서 짠 코드는 아래와 같다.

import cv2
import numpy as np

img = cv2.imread("lena_color_256.tif",cv2.IMREAD_COLOR)
cv2.imshow("color_image",img)

gray_img = cv2.imread("lena_color_256.tif",cv2.IMREAD_GRAYSCALE)
cv2.imshow("grayscale_image",gray_img)

cv2.imwrite("gray_lena.tif",gray_img)
cv2.waitKey()

 

 

먼저 나는 IDE로 파이참을 사용한다. 파이참 프로젝트가 있는 폴더 내에, 

컬러 사진 파일을 넣어야한다. 위치를 찾아서 imread("1","2") 1에 써 줘도 되지만,

나는 귀찮으니까 그냥 위와같은 방식을 사용했다. 1에 그냥 파일 이름을 써 주면 된다.

 

cv2.imread(1,2)는 이제 1번의 사진을 내가 2번의 방법으로 보고싶다. 라는걸 의미하는 것 같다.

 

cv2.imshow(a,b)는 이제 읽은 사진 파일을 이제 a의 이름으로 b의 형태로 보여줘. 라는걸 의미하는 것 같다.

 

cv2.imwrite(가,나)는 "가"의 이름으로 내가 만든 "나"의 사진을 저장해줘. 라는 의미이다.

 

근데 그냥 위에 설명한 코드만 쓰고 실행을 하면, 창이 떴다가 바로 사라져버린다.

 

여기서 이제

cv2.waitKey()를 해 줘야한다. 대충 기능을 보니까, 이건 키 하나를 입력받을때까지 잠시 기다린다는 의미이다.

 

아직 영상처리 배우기 첫단계라 좀 포스팅을 두서없이 쓴것 같다.

 

그래도 배워가면서 천천히 수정 해 볼 것이다.

 

 

댓글