본문 바로가기
OpenCV

[OpenCV] 주요 함수 사용법

by ram_ 2023. 2. 20.

1. 영상 파일 불러오기

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 : 불러온 영상 데이터 (numpy.ndarray)

 

 

2. 영상 파일 저장하기

cv2.imwrite(filename, img, params=None) -> retval

filename : 저장할 파일 이름 (문자열), 확장자 변경 가능 (.bmp -> .png)

 

img : 저장할 영상 데이터(numpy.ndarray)

 

params : 파일 저장 옵션 지정 ( 속성 & 값의 정수 쌍). 

               - e.g) [cv2.IMWRITE_JPEG_QUALITY, 90] : jpg파일 압축률을 90%로 지정

 

retval : 정상적으로 저장하면 True, 실패하면 False.

 

 

3. 새 창 띄우기

cv2.namedWindow(winname, flags=None) -> None

winname : 창 고유이름 ( 문자열)

 

flags : 창 속성 지정 플래그

           - cv2.WINDOW_NORMAL : 영상 크기를 창 크기에 맞게 지정

           - cv2.WINDOW_AUTOSIZE : 창 크기를 영상 크기에 맞게 변경 (기본값)

 

 

4. 영상 출력하기

cv2.imshow(winname, mat) -> None

winname : 영상을 출력할 대상 창 이름

 

mat : 출력할 영상 데이터 (numpy.ndarray)

 

! 참고사항

 - cv2.waitKey()함수는 OpenCV 창이 하나라도 있을 때 동작함

 - 특정키 입력을 확인하려면 ord()함수를 이용

    while True : 

            if cv2.waitKey() == ord('q'):

                 break

 - 주요 특수키 코드 : 27(ESC), 13(ENTER), 9(TAB)

 

 

 

5. 키보드 입력 대기

cv2.waitKey(delay = None) -> retval

delay : 밀리초 단위 대기 시간. delay <= 0이면 무한히 기다림. 기본값은 0

 

retval : 눌린 키 값 (ASCII code). 키가 눌리지 않으면 -1

 

 

6. 창 닫기

cv2.destroyWindow(winname) -> None
cv2.deatroyAllWindows() -> None

winname : 닫고자 하는 창 이름

 

! 참고사항  

- cv2.destroyWindow()함수는 지정한 창 하나만 닫고, cv2.destroyAllWindow()함수는 열려 있는 모든 창을 닫는다.

- 일반적인 경우 프로그램 종료시 운영 체제에 의해 열려있는 모든 창이 자동으로 닫힌다.

 

 

7. 이 외 OpenCV API 도움말 찾기

https://docs.opencv.org/4.x/

 

OpenCV: OpenCV modules

OpenCV  4.7.0-dev Open Source Computer Vision

docs.opencv.org

도움말 사이트내의 구글 검색 사용

'OpenCV' 카테고리의 다른 글

[OpenCV] Img crop / 밝기 조절  (0) 2023.03.02
[OpenCV] 영상데이터 표현, 생성, 복사  (0) 2023.02.21
[OpenCV] Matplotlib을 이용한 영상 출력  (0) 2023.02.21
[OpenCV] 기초 test  (1) 2023.02.20
[OpenCV] Computer Vision, Image Data  (0) 2023.02.20