Koo's.Co

[OpenCV] 기본 함수 본문

Python/영상처리

[OpenCV] 기본 함수

kth321 2023. 1. 4. 19:14

1. imread

cv2.imread(filename, flags=None) -> retval

 - filename: str : 불러올 영상 파일

 - flags: 영상 파일 옵션 플래그

cv2.IMREAD_COLOR BGR 컬러 영상 읽기 (default)
shape = (rows, cols, 3)
cv2.IMREAD_GRAYSCALE 그레이스케일 영상 읽기
shape = (rows, cols)
cv2.IMREAD_UNCHANGED 영상 파일 속성 그대로 읽기
PNG: alpha channel 사용 가능

2. imwrite

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

 - filename: 저장할 영상 파일 이름

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

 - params: 파일 저장 옵션

    * ex) [cv2.IMWRITE_JPEG_QUALITY, 90]: JPG 파일 압축률을 90%로 지정

 - retval: bool: 정상 저장 -> True, 실패 -> False

3. namedWindow

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

opencv에서는 문자열을 이용해 각 창을 구분

 - winname: str: 창 이름

 - flags: 창 속성 지정 플래그

cv2.WINDOW_NORMAL 영상 크기를 창 크기에 맞게 지정
- 해상도가 높은 경우 사용 가능
- 영상 크기가 큰 경우 사용 가능
cv2.WINDOW_AUTOSIZE 창 크기를 영상 크기에 맞게 변경 (default)

4. destroyWindow

cv2.destroyWindow(winname) -> None # 특정 창 닫기
cv2.destroyAllWindows() -> None # 모든 창 닫기

일반적인 경우 프로그램이 종료되면 운영체제에 의해 열려 있는 모든 창이 닫힘

5. moveWindow

cv2.moveWindow(winname, x, y) -> None

 - winname: 창 이름

 - x, y: 이동할 위치 좌표

6. resizeWindow

cv2.resizeWindow(winname, width, height) -> None

 - winname: 창 이름

 - width: 변경할 창의 가로 크기

 - height: 변경할 창의 세로 크기

 

****

* cv2.WINDOW_NORMAL 속성을 이용해 창을 생성한 경우에만 크기 설정 가능

* 영상 출력 부분의 크기만을 고려하기 때문에 제목 표시줄, 창 경계는 고려하지 않는다

7. imshow

cv2.imshow(winname, mat) -> None

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

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

 

****

* uint16, int32: 행렬 원소 값을 255로 나눠서 출력

* float32, float64: 행렬 원소 값에 255를 곱해서 출력

* winname에 해당하는 창이 없는 경우 창을 새로 만들어서 출력

* cv2.waitKey() 함수 호출을 해야 영상이 유지됨

* int, float형 데이터를 사용하는 경우 astype을 이용해 타입 변환 후 사용하면 더 안전하게 사용 가능

8. waitKey

cv2.waitKey(delay=None) -> retval

 - delay: 밀리초 단위 대기 시간. delay <= 0인 경우 무한히 기다림, default = 0

 - retval: 눌린 키 ASCII Code , default=-1

 

window가 하나라도 있을 때 동작

****

ASCII Code

* 27: ESC

* 13: Enter

* 9: Tab

# 특정 키 입력으로 멈출 수 있음
while True:
  if cv2.waitKey() == ord('A'):
    break

 

Comments