OpenCV 주요 함수 사용법

yeoni·2023년 6월 28일
0

opencv

목록 보기
2/12
post-custom-banner

영상 파일 불러오기

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) 제로베이스 데이터스쿨 강의자료

profile
데이터 사이언스 / just do it
post-custom-banner

0개의 댓글