프로그래밍/Python

[Python] OpenCV 이미지 출력

Beginner:) 2022. 10. 6.
320x100

OpenCV 이미지 출력하는 방법이다.

import cv2

image = cv2.imread('C:/Users/Park/Desktop/park-duck.jpg')

cv2.imshow('image title', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

 


1. imread(filename, flag)

먼저 imread는 image read의 줄임말이며 

파라미터로 이미지의 경로와 flag옵션을 가진다.

 

flag옵션은 아래의 세가지이다.

1 = cv2.IMREAD_COLOR = 칼라 읽기 (투명 무시)

0 = cv2.IMREAD_GRAYSCALE = 흑백 사이의 값으로 읽기

-1 = cv2.IMREAD_UNCHANGED = 투명 영역 포함 읽기

 

return값은 이미지의 픽셀 값이 3차원 행렬로 numpy.ndarray 타입이다.

즉 x, y 값과 색상값이다.

 

특이하게 보통 RGB로 계산하는데 imread시 읽은 값은 BGR로 반대인 점에 유의해야 한다.

 

아래의 두 가지를 예제로 들어보자 

import cv2

image1 = cv2.imread('C:/Users/Park/Desktop/park-duck.jpg', 1)
image2 = cv2.imread('C:/Users/Park/Desktop/park-duck.jpg', 0)
image3 = cv2.imread('C:/Users/Park/Desktop/park-duck-removebg.png', -1)

cv2.imshow('image title1', image1)
cv2.imshow('image title2', image2)
cv2.imshow('image title3', image3)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

2. imshow(title, image)

image show의 줄임말로 말 그대로 이미지를 디스플레이한다.

파라미터는 이미지를 보여주는 창의 타이틀과 이미지의 데이터(3차원 행렬)를 받는다.

 

3. waitKey(milisecond)

파라미터로 밀리세컨드를 받으며 0을 입력 시 key입력 시까지 무한정 기다린다. 

waitKey가 없으면 실행되자마자 Python이 종료되기 때문에 사진도 볼 수 없다.

ex) milisecond 파라미터를 5000으로 입력 시 5초 후 대기를 멈춘다.

return값은 입력받은 key의 아스키코드값이 반환된다.

 

4. destroyAllWindows()

보통 waitKey에 의해 대기상태가 지난 후 cv에 관련된 모든 창을 Close 한다.

 

5. shape

이미지의 가로*세로*색상 채널 값이다.

앞서 말했던 cv2.IMREAD_COLOR는 투명을 무시한 BGR 값이기 때문에 3개의 채널을 가지고

cv2.IMREAD_GRAYSCALE는 흑/백이므로 채널 값이 없다.

cv2.IMREAD_UNCHANGED는 투명 영역 포함하여 읽기 때문에 BGR+투명 값을 하여 4 채널이다.

 

출력도 해보자

 

import cv2

image1 = cv2.imread('C:/Users/Park/Desktop/park-duck.jpg', 1)
image2 = cv2.imread('C:/Users/Park/Desktop/park-duck.jpg', 0)
image3 = cv2.imread('C:/Users/Park/Desktop/park-duck-removebg.png', -1)

cv2.imshow('image title1', image1)
cv2.imshow('image title2', image2)
cv2.imshow('image title3', image3)

print(image1.shape, image2.shape, image3.shape)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

6. imwrite(filename, image)

이미지 읽기인 read와 반대로 이미지를 쓰는 명령어다.

filename 파라미터에 경로와 파일의 이름을 적고, image 값을 넣어주면 된다. 

이렇게 생성이 되었다.

 

 

 

 

 


 

사용된 이미지

반응형

댓글