본문 바로가기
OpenCV

OpenCV - 이미지 불러오기,저장하기

by winston1214 2020. 9. 3.
반응형

OpenCV의 기본 라이브러리는 cv2 이다.

그래서 기본 샘플 코드로 opencv를 실행시켜보자

import cv2
img = cv2.imread('img/input.jpg')
cv2.imshow('Input image',img)
cv2.waitKey()
cv2.destroyAllWindows()

위와 같은 코드를 작성하면 어떤 하나의 창이 뜨면서 그림이 불러와진다.

input

코드에 대해서 하나씩 살펴보자.

먼저 cv2.imread는 이미지를 0~255까지의 숫자로 반환하는 것이다. 

두번째로 cv2.imshow()는 위 사진과 같은 창을 띄우게 하는 것이다. 처음 Text는 창의 이름을 띄우고, 두번째로 img는 창에 띄울 이미지 변수이다.

세번째로 cv2.waitKey() 이다. 키보드 입력을 대기하는 함수로 0이면 key 입력이 있을때까지 무한대기한다. default값은 0이다.

마지막으로 cv2.destroyAllWindows() 이다. 이는 말 그대로 윈도우 창을 파괴 즉, 끄는 것이다. 이 명령어를 해주지 않으면 오류가 나고 응답없음이 뜨기 때문에 해줘야지 정신건강에 좋다.

이 imshow 부터 destroy까지 이 3가지 명령어는 가장 기본적인 cv2 함수로 꼭 기억해야한다. 사실 기억을 굳이 안해도 너무 많이 쓰이기 때문에 강제적으로 기억이 난다.

 

다음으로 이 그림을 흑백 사진으로 바꿔보자

gray_img = cv2.imread('img/input.jpg',cv2.IMREAD_GRAYSCALE) # gray img
cv2.imshow('Gray scale',gray_img)
cv2.waitKey()
cv2.destroyAllWindows()

그 전과 동일한데 달라진 점은 바로 cv2.IMREAD_GRAYSCALE이다. 이는 이름 그대로 Gray Scaling을 한다는 것으로 흑백으로 변환해준다. 한가지 팁은 cv2.imread('img/input.jpg',0) 과 동일하다. 즉 cv2.IMREAD_GRAYSCALE == 0

gray scale

그럼 이렇게 Scaling 해 준 그림은 어떻게 저장하는 지에 대해 알아보자.

간단하다. 읽기(load) 쓰기(save)이다.

cv2.imwrite('img/output.jpg',gray_img)

첫번째 파라미터는 경로라는 것은 당연히 알고 있다고 생각하겠다.

그럼 만약에 jpg가 아닌 png로 변환하여 저장하고 싶다면?

cv2.imwrite('img/output.png',img,[cv2.IMWRITE_PNG_COMPRESSION])

확장자를 png로 바꿔주고 리스트 형식으로 IMWRITE_PNG_COMPRESSION 을 적으면 png로 깔끔하게 저장이 된다.

컴활 공부한 사람들은 알겠지만 png와 jpg의 차이는 압축의 차이와 벡터인지 레스터인지의 차이이다. 따라서 변환 코드가 필요하다.

 

 

반응형

'OpenCV' 카테고리의 다른 글

OpenCV - 이미지 사이즈 변환 및 보간법  (0) 2020.10.10
OpenCV - 이미지의 이동 및 회전  (0) 2020.10.10
cv2.imshow를 matplotlib로 구현  (0) 2020.09.03
OpenCV - 색 변경  (0) 2020.09.03
Window Python OpenCV 설치  (0) 2020.09.03

댓글