Python/OpenCV

이미지와 비디오 입출력

ddingz 2022. 1. 23. 20:30

이미지 읽기

  • img = cv2.imread(file_name [, mode_flag]) : 파일로부터 이미지 읽기
    • file_name : 이미지 경로, 문자열
    • mode_flag = cv2.IMREAD_COLOR : 읽기 모드 지정
      • cv2.IMREAD_COLOR : 컬러(BGR) 스케일로 읽기, 기본 값
      • cv2.IMREAD_UNCHANGED : 파일 그대로 읽기
      • cv2.IMREAD_GRAYSCALE : 그레이(흑백) 스케일로 읽기
    • img : 읽은 이미지, NumPy 배열
  • cv2.imshow(title, img) : 이미지를 화면에 표시
    • title : 창 제목, 문자열
    • img : 표시할 이미지, NumPy 배열
  • key = cv2.waitKey([delay]) : 키보드 입력 대기
    • delay = 0 : 키보드 입력을 대기할 시간(ms), 0 : 무한대(기본 값)
    • key : 사용자가 입력한 키 값, 정수
      • -1 : 대기시간 동안 키 입력 없음

이미지 저장하기

  • cv2.imwrite(file_path, img) : 이미지를 파일에 저장
    • file_path : 저장할 파일 경로 이름, 문자열
    • img : 저장할 영상, NumPy 배열

동영상 및 카메라 프레임 읽기

  • cap = cv2.VideoCapture(file_path 또는 index) : 비디오 캡처 객체 생성자
    • file_path : 동영상 파일 경로
    • index : 카메라 장치 번호, 0부터 순차적으로 증가(0, 1, 2, …)
    • cap : VideoCapture 객체
  • ret = cap.isOpened() : 객체 초기화 확인
    • ret : 초기화 여부, True/False
  • ret, img = cap.read() : 영상 프레임 읽기
    • ret : 프레임 읽기 성공 또는 실패 여부, True/False
    • img : 프레임 이미지, NumPy 배열 또는 None
  • cap.set(id, value) : 프로퍼티 변경
  • cap.get(id) : 프로퍼티 확인
  • cap.release() : 캡처 자원 반납

카메라 비디오 속성 제어

  • 속성 ID : 'cv2.CAP_PROP_'로 시작하는 상수
    • cv2.CAP_PROP_FRAME_ WIDTH : 프레임 폭
    • cv2.CAP_PROP_FRAME_HEIGHT : 프레임 높이
    • cv2.CAP_PROP_FPS : 초당 프레임 수
    • cv2.CAP_PROP_POS_MSEC : 동영상 파일의 프레임 위치(ms)
    • cv2.CAP_PROP_POS_AVI_RATIO : 동영상 파일의 상대 위치(0: 시작, 1: 끝)
    • cv2.CAP_PROP_FOURCC : 동영상 파일 코덱 문자
    • cv2.CAP_PROP_AUTOFOCUS : 카메라 자동 초점 조절
    • cv2.CAP_PROP_ZOOM : 카메라 줌

비디오 파일 저장하기

  • writer = cv2.VideoWriter(file_path, fourcc, fps, (width, height)) : 비디오 저장 클래스 생성자 함수
    • file_path : 비디오 파일 저장 경로
    • fourcc : 비디오 인코딩 형식 4글자
    • fps : 초당 프레임 수
    • (width, height) : 프레임 폭과 프레임 높이
    • writer : 생성된 비디오 저장 객체
  • writer.write(frame) : 프레임 저장
    • frame : 저장할 프레임, NumPy 배열
  • writer.set(id, value) : 프로퍼티 변경
  • writer.get(id) : 프로퍼티 확인
  • ret = writer.fourcc(c1, c2, c3, c4) : fourcc 코드 생성
    • c1, c2, c3, c4 : 인코딩 형식 4글자, 'MJPG', 'DIVX' 등
    • ret : fourcc 코드
  • cv2.VideoWriter_fourcc(c1, c2, c3, c4) : cv2.VideoWriter.fourcc()와 동일