Open CV 영상 파일 조작

Section 1. 영상 파일 불러와서 출력

1. 실습 코드



2. 실습 코드 설명

import cv2			# opencv 패키지 불러오기
img = cv2.imread('cat.bmp')	# 폴더 내에 존재하는 cat.bmp 파일을 불러와 img 변수에 저장 
if img is None:			# imread함수는 파일을 불러오는데 실패했을 경우 None 반환
    print('Image load failed!') # 실패했을 경우 실패했다는 문구 출력
    sys.exit()			# 프로그램 종료
cv2.namedWindow('image') 	# image를 제목으로 하는 창을 생성
cv2.imshow('image', img) 	# image 창에 불러온 img 영상 파일 지정
cv2.waitKey()			# 사용자의 입력을 기다림 (기다리는 동안 영상 파일 Display)
cv2.destroyAllwindows()		# 현재 존재하는 창을 모두 닫음



Section 2. 주요 함수 설명

1. imread() 함수

  • filename : 불러올 영상 파일명 (폴더 내에 존재하지 않을 시 절대경로 또는 상대경로명으로 지정
  • flags : 영상 파일 불러오기 옵션 플래그
    - cv2.IMREAD_COLOR : 컬러 영상으로 불러오기 (Default)
    - cv2.IMREAD_GRAYSCALE : 그레이 스케일 영상으로 불러오기



2. imwrite() 함수

  • filename : 저장될 파일명 지정
  • img : 저장할 영상 데이터 (numpy.ndarray 형식)
  • params : 파일 저장 옵션 지정
    - [cv2.IMWRITE_JPEG_QUALITY, 90] : JPG 파일 압축률을 90%로 지정
  • retval : 성공하면 True, 실패하면 False



3. namedWindow()함수

  • winname : 창의 제목
  • flags : 창 속성 지정 플래그
    - cv2.WINDOW_NORMAL : 영상 크기를 창 크기에 맞게 지정
    - cv2.WINDOW_AUTOSIZE : 창 크기를 영상 크기에 맞게 변경 (Default)



4. imshow()함수

  • winname : 영상을 출력할 대상 창
  • mat : 출력할 영상 데이터
  • imshow() 함수가 실행된다고 해서 실제로 화면에 영상 파일이 출력되는 것은 아님



5. waitKey()함수

  • delay : 밀리 초 단위 대기 시간, 0 이하이면 무한 대기, Default = 0
  • retval : 눌린 키 값 (아스키코드), 키가 눌리지 않으면 -1 반환
  • opencv 창이 하나라도 있을 때 동작함
  • imshow() 함수 실행 뒤에 waitKey() 함수 실행해야 실제로 영상 파일이 출력



6. destroy()함수

  • winname : 닫고자 하는 창 이름



error


1. cat.bmp 영상 파일 불러오기 error

  • VScode의 메뉴바 Run 및 Debug 기능은 현재 프로젝트 폴더 기준으로 파일 경로 설정
  • VScode의 run in terminal 기능은 vscode 터미널 창 현재 디렉토리 기준으로 파일 경로 설정
img = cv2.imread('cat.bmp')	# 절대 및 상대경로 지정하던지 terminal에서 디렉토리로 cd 하던지 해야함

좋은 웹페이지 즐겨찾기