import cv2
import sys
import numpy as np
print('openCV Version', cv2.__version__)
import os
os.chdir('C:\coding\OpenCV\ch01') # can't open/read file: check file path/integrity 오류 해결을 위해 경로 설정
img = cv2.imread('cat.bmp')
if img is None: # 이미지 없으면
print('Image Load failed !')
sys.exit() # 종료
cv2.namedWindow('image') # 'img' 이름을 가진 window 창 생성
cv2.imshow('image', img) # imshow('보여줄 창', 보여줄 이미지)
cv2.waitKey() # 키보드 입력 기다림(다음 행동 전까지 창 띄워둠)과 동시에 영상(이미지)가 실제로 보여질 수 있게 함
cv2.destroyAllWindows() # 화면의 모든 창 닫기
이제 각 함수를 자세히 살펴보자.
1. 이미지 파일 불러오기
cv2.imread(filename, flags=None)
• flags : 영상(이미지) 불러오기 옵션 플래그
| cv2.IMREAD_COLOR | BGR 컬러 영상으로 읽기(Default) shape = (rows, cols, 3) |
| cv2.IMREAD_GRAYSCALE | 그레이스케일 영상으로 읽기 shape = (rows, cols) |
| cv2.IMREAD_UNCHANGED | 영상 파일 속성 그대로 읽기 (e.g.) 투명한 PNG 파일: shape = (rows, cols, 4) |
2. 이미지 파일 저장하기
cv2.imwrite(filename, img, params=None)
예를 들어 위의 cat.bmp 파일을 흑백의 png 파일로 저장하고 싶다면
이런 식으로 간단히 실행 가능하다.
3. 새 창 띄우기
cv2.namedWindow(winname, flags=None) -> None
• flags: 창 속성 지정 플래그
| cv2.WINDOW_AUTOSIZE | 창 크기를 영상 크기에 맞게 변경 (Default) |
| cv2.WINDOW_NORMAL | 영상 크기를 창 크기에 맞게 지정 |
4. 창 닫기
v2.destroyWindow(winname) -> None
cv2.destroyAllWindows() -> None
• winname: 닫고자 하는 창 이름
cv2.destroyWindow() 함수는 지정한 창 하나만 닫고, cv2.destroyAllWindows() 함수는 열려 있는 모든 창을 닫음.
일반적인 경우 프로그램 종료 시 운영 체제에 의해 열려 있는 모든 창이 자동으로 닫힘
5. 이미지 출력하기
cv2.imshow(winname, mat) -> None
만약 winname에 해당하는 창이 없으면(cv2.nameWindow를 선언하지 않았다면) 창을 새로 만들어서 영상을 출력함
6. 키보드 입력 대기
cv2.waitKey(delay=None) -> retval
• delay: 밀리초 단위 대기 시간. delay ≤ 0 이면 무한히 기다림. 기본값은 0.
• retval: 눌린 키 값(ASCII code). 키가 눌리지 않으면 -1.
• 참고 사항
waitKey는 imshow 뒤에 와야 함
cv2.waitKey() 함수는 OpenCV 창이 하나라도 있을 때 동작함
특정 키 입력을 확인하려면 ord() 함수를 이용
주요 특수키 코드: 27(ESC), 13(ENTER), 9(TAB)
ex) q를 눌러야 이미지 창이 사라짐
나의 경우 흔한 오류라고 생각되지는 않지만 can't open/read file: check file path/intergrity 오류가 발생하여 찾아본 결과
os.chdir('파일이 속한 폴더 주소')를 통해 경로를 변경해주고 진행하여 오류를 해결할 수 있었습니다.
오류해결 방법: https://github.com/opencv/opencv/issues/21770
cv::findDecoder imread_: can't open/read file: check file path/integrity · Issue #21770 · opencv/opencv
System information (version) OpenCV => 4.5.5 Operating System / Platform => Windows 64 Bit/Anaconda 4.1.2 Compiler => Spyder/anaconda prompt Detailed description Opencv doesnt open videos. It works...
github.com
'OpenCV' 카테고리의 다른 글
| OpenCV 마스크 연산& ROI (0) | 2024.03.15 |
|---|---|
| OpenCV 이미지(영상)의 생성, 복사, 부분 영상 추출 (1) | 2024.03.15 |
| OpenCV 이미지 속성, 크기, 픽셀 값 참조 (3) | 2024.03.15 |
| OpenCV 슬라이드쇼 만들기 (0) | 2024.03.14 |
| OpenCV Matplotlib 사용하여 이미지(영상) 출력 (0) | 2024.03.14 |