예제 영상 파일

choco.jpg

예제 파일은 아무 이미지 파일로 사용하셔도 됩니다. 저는 귀여운 강아지 초코로 진행해볼 예정입니다.

파일을 다운받으셔서 같은 환경(실행하는 파이썬 디렉토리)에 저장을 시켜 둡니다.

(만약 다른 곳에 있다면 경로를 아셔야 합니다)

 

- cv2 모듈 설정

import cv2

image 관련 함수

- imread

imread 함수는 image read의 약자로, 이미지를 읽어 오는 함수입니다.

img = cv2.imread('choco.jpg')

저는 확장자는 jpg이고, 파일 이름으로 choco로 지정을 해두었습니다. 혹시라도 다른 경로 및 다른 이미지 파일 이름을 사용하신다면, 다음과 같이 파일 경로 및 지정한 파일 이름을 직접 넣어 주셔야 합니다.

img = cv2.imread('{파일경로}\choco.jpg')
img = cv2.imread('{파일경로}\{지정한 파일 이름}.jpg')

- imshow

초기에 세팅된 window 창에, 방금 지정한 img를 띄웁니다.

cv2.imshow('image', img)

(tip, 초기 Windows 세팅 없이도 바로 사용 가능합니다. 이땐, image라는 WINDOW_AUTOSIZE가 적용된 윈도우창이 새로 뜹니다.)

- waitkey

사용자가 입력받기 전까지 윈도우창을 유지시켜줍니다.

cv2.waitKey()

이때, 키보드에 아무 버튼을 누르면 윈도우 창은 종료됩니다.

 

만약 3초 후에, 자동으로 꺼지게 하고 싶다면,

cv2.waitKey(3000)

으로 지정해주시면 됩니다. 괄호 안에 숫자 단위는 ms입니다. (3초 = 3000ms)

 

또한, esc 키를 누를 때만 종료하고 싶다면, esc의 아스키코드 값인 27 (enter는 13)을 설정해 주시면 됩니다.

while True :
    if cv2.waitKey() == 27 :
        break

특정 아스키코드를 알고 싶다면 (https://ko.wikipedia.org/wiki/ASCII)에서 확인 가능합니다.

또는 아래처럼 세팅을 한 후에, 키보드 누르는 값을 출력하여 알아낼 수 있습니다.

key = cv2.waitKey()
print(key)

특정 키보드 문자로 종료시키고 싶다면, (아스키코드를 이용해도 됩니다만) ord함수를 이용하여 종료시킬 수 있습니다.

키보드 'n' 키를 누르면 종료시키려면 다음과 같이 사용하시면 됩니다.

(*ord 함수 : 특정한 한 문자를 아스키 코드 값으로 변환해 주는 함수)

while True :
    if cv2.waitKey() == ord('n') :
        break

 

(tip, 특정한 값을 눌렀을 때, 특정 효과를 띄울 때도 사용할 수 있습니다)

아래 코드는, s 키를 눌렀을 때, 픽셀값을 바꾸어 이미지 반전 효과를 주는 코드입니다.

img = cv2.imread('choco.jpg')
cv2.imshow('image', img)
while True :
    key = cv2.waitKey()
    if cv2.waitKey() == 27 :
        break
    elif key == ord('s') or key == ord('S'):
        img = ~img
        cv2.imshow('image', img)
반응형

+ Recent posts