인공지능

Opencv Python - 2. 이미지 다루기

닥스훈스 2019. 9. 2. 23:44

이미지파일을 프로젝트 위에 드래그해준다.

 

파이썬파일 하나 생성 후 다음과 같이 코드 작성해준다.

import cv2

#cv2.IMREAD_COLOR 투명도를 무시하고 이미지를 컬러로 읽음
#cv2.IMREAD_GRAYSCALE 이미지 파일을 GRASCALE이미지로 임시 읽어옴
#CV2.IMREAD_UNCHANGED 투명도 포함 이미지를 컬러로 읽음

#읽어올 파일명(절대,상대경로 모두 가능), 이미지를 읽을때 사용하는 플래그
img_color = cv2.imread('bowling.jpg', cv2.IMREAD_COLOR)

#생략 가능
cv2.namedWindow('Show Image')

#(윈도우 식별자, 윈도우에 보여줄 이미지에 대한 변수) 첫번째 인자를 타이틀로 하는 윈도우 생성
cv2.imshow('Show Image', img_color)

#인자로 지정한 시간만큼 사용자의 키보드 입력 대기(단위: 초), 0은 무한 대기
cv2.waitKey(0)

#프로그램 종료 전 윈도우를 위한 자원 해제
cv2.destroyAllwindows()

 

실행하면 이미지가 나타난다.

 

그레이스케일 이미지로 변환

다음 코드를 작성한다.

import cv2

img_color = cv2.imread('bowling.jpg', cv2.IMREAD_COLOR)


#컬러이미지->그레이스케일로 변환
img_gray = cv2.cvtColor(img_color, cv2.COLOR_BGR2GRAY)

#이미지를 보이도록 하고
cv2.imshow('img_gray', img_gray);
cv2.waitKey(0)

cv2.destroyAllwindows()

 

실행하면 회색으로 변경된것을 확인할 수 있다.

 

컬러이미지 이후 그레이스케일 이미지 보여주기

이미지 동시에 실행하기

cv2.imshow()의 첫번째 인자명을 같게 해주면 된다.

import cv2

img_color = cv2.imread('bowling.jpg', cv2.IMREAD_COLOR)

cv2.namedWindow('Show Image')
cv2.imshow('Show Image', img_color)
cv2.waitKey(0)

img_gray = cv2.cvtColor(img_color, cv2.COLOR_BGR2GRAY)
cv2.imshow('Show Image', img_gray);
cv2.waitKey(0)

cv2.destroyAllwindows()

 

실행하면 먼저 컬러이미지가 보이고, 이후 그레이스케일 이미지가 보인다.

 

별도의 윈도우 각각 보여주기

 

이미지 저장하기

imwrite함수로 이미지를 파일로 저장할 수 있다.

import cv2

img_color = cv2.imread('bowling.jpg', cv2.IMREAD_COLOR)

cv2.namedWindow('Show Image')
cv2.imshow('Show Image', img_color)
cv2.waitKey(0)

img_gray = cv2.cvtColor(img_color, cv2.COLOR_BGR2GRAY)
cv2.imshow('Show GrayScale Image', img_gray);
cv2.waitKey(0)

#(저장할 파일 이름, 저장할 이미지 변수)
cv2.imwrite('savedimage.jpg', img_gray)
cv2.destroyAllwindows()

 

같은 프로젝트 경로에 저장된 모습

 

 

Reference

https://youtu.be/w8iO9X5jcf8?list=PLwfJJiO20qkDue05S5MNhgYNnClMVlagN