영상 파일 불러오기
cv2.imread(filename, flags=None) -> retval
filename
: 불러올 영상 파일 이름(문자열)
flags
: 영상 파일 불러오기 옵션 플래그
- cv2.IMREAD_COLOR: BGR 컬러 영상으로 읽기(기본값)
shape = (rows, cols, 3)
- cv2.IMREAD_GRAYSCALE: 그레이 스케일 영상으로 읽기
shape = (rows, cols)
- cv2.IMREAD_UNCHANGED: 영상 파일 속성 그대로 읽기
(e.g.) 투명한PNG 파일:shape = (rows, cols, 4)
- retval(retrun value):불러온 영상 데이터(numpy.ndarray)
영상 파일 저장하기
cv2.imwrite(filename, img, params=None) -> retval
filename
: 저장할 영상 파일 이름(문자열)
img
: 저장할 영상 데이터(numpy.ndarray)
params
: 파일저장옵션지정(속성& 값의정수쌍)
e.g) [cv2.IMWRITE_JPEG_QUALITY, 90] : JPG파일압축률을90%로지정
- retval: 정상적으로 저장하면 True, 실패하면 False.
새 창 띄우기
cv2.namedWindow(winname, flags=None) -> None
- winname:창 고유 이름(문자열)
- flags:창 속성 지정 플래그
- cv2.WINDOW_NORMAL: 영상 크기를 창 크기에 맞게 지정
- cv2.WINDOW_AUTOSIZE: 창 크기를 영상 크기에 맞게 변경(기본값)
창 닫기
cv2.destroyWindow(winname)->None
cv2.destroyAllWindows()->None
- winname: 닫고자 하는 창 이름
- 참고사항
- cv2.destroyWindow() 함수는 지정한 창 하나만 닫고
- cv2.destroyAllWindows() 함수는 열려있는 모든 창을 닫음
- 일반적인 경우 프로그램 종료 시 운영체제에 의해 열려있는 모든 창이 자동으로 닫힘
영상 출력 하기
cv2.imshow(winname, mat) -> None
- winname: 영상을 출력할 대상 창 이름
- mat: 출력할 영상 데이터(numpy.ndarray)
- 참고사항
- uint16, int32 자료형 행렬의경우, 행렬 원소값을 255로 나눠서출력
- float32, float64 자료형 행렬의경우, 행렬 원소값에 255를 곱해서출력
- 만약 winname에 해당하는 창이 없으면 창을 새로 만들어서 영상을출력함
- Windows 운영체제에서는 Ctrl + C (복사), Ctrl + S (저장) 지원
- 실제로는 cv2.waitKey() 함수를 호출해야 화면에 영상이 나타남
키보드 입력 대기
cv2.waitKey(delay=None) -> retval
- delay: 밀리초 단위 대기시간. delay ≤0 이면 무한히 기다림. 기본값은0.
- retval: 눌린키 값(ASCII code). 키가 눌리지 않으면-1.
- 참고사항
- cv2.waitKey() 함수는 OpenCV 창이 하나라도 있을때 동작함
- 특정키 입력을 확인하려면 ord() 함수를 이용
- 주요 특수 키코드: 27(ESC), 13(ENTER), 9(TAB)
while True:
if cv2.waitKey()==ord('q'):
break
예제
import sys
import cv2
img = cv2.imread('cat.bmp')
if img is None:
print('image load failed!')
sys.exit()
cv2.namedWindow('image')
cv2.imshow('image', img)
cv2.waitKey()
cv2.destroyWindow('image')
Reference
1) 제로베이스 데이터스쿨 강의자료