OpenCV는 강력한 컴퓨터 비전 라이브러리로서 다양한 분야에서 널리 사용되고 있는데, 오늘은 제가 프로그래밍을 하면서 겪었던 오류 메시지와 해결 방법을 공유하겠습니다.
1 오류 메시지
[ WARN:[email protected]] global grfmt_tiff.cpp:716 cv::TiffDecoder::readData OpenCV TIFF: TIFFRGBAImageOK: Sorry, can not handle images with 64-bit samples
cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
여기에는 경고와 오류 메시지가 포함되어 있습니다.
경고 메시지: TIFF 이미지를 처리할 때 OpenCV 라이브러리에서 발생하는 문제와 관련이 있습니다. 경고 메시지로 판단하면 TIFF 이미지는 64비트 샘플을 사용할 수 있으며 OpenCV의 TiffDecoder는 이 상황을 처리할 수 없습니다.
오류 메시지:빈 이미지에서 색상 공간 변환을 수행하려고 하면 OpenCV가 발생합니다(또는 경로가 유효하지 않아 이미지로 읽을 수 없음). cv2.cvtColor
이 기능은 RGB에서 회색조 이미지 또는 HSV 등으로 변환하는 등 이미지의 색상 공간을 변경하는 데 사용됩니다. 오류 메시지는 빈 이미지(_src.empty()가 true)에서 색상 공간 변환을 수행하려고 시도했음을 나타냅니다. 즉, 알려주신 이미지 파일 경로가 잘못되었거나, 파일이 존재하지 않거나, 파일이 있음에도 불구하고 제대로 읽히지 않는 경우가 있습니다.
2가지 솔루션
2.1 경고 메시지 해결
cv2.normalize
, cv2.convertScaleAbs
함수 또는 GDAL 라이브러리를 사용하여 tif를 8비트로 변환합니다. (저는 cv2의 두 가지 기능으로는 성공하지 못했습니다. GDAL 라이브러리로는 성공했고 다음 글에서 공유하겠습니다)
image_scaled = cv2.convertScaleAbs(image, alpha=0, beta=255)
image_normalized = cv2.normalize(image, None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U)
2.2 오류 메시지 해결
- 이미지 파일 경로가 올바른지 확인하세요. 경로가 올바른지, 해당 파일이 실제로 존재하는지 확인하세요. (중국어 경로는 사용하지 마세요)
- OpenCV에서 이미지 파일을 올바르게 읽을 수 있는지 확인하십시오. 일부 이미지 파일이 손상되었거나 OpenCV에서 지원하지 않는 형식일 수 있습니다.
- 이미지를 읽기 전에 파일 경로가 올바른지, 파일이 존재하는지 확인하세요. os 모듈의 os.path.exists() 함수를 사용하여 이를 확인할 수 있습니다.
- 동시에, picture/tif가 64비트 그림일 수도 있으므로 cv2 라이브러리가 이미지 정보를 정상적으로 이해하고 읽을 수 없게 됩니다. 해결 방법은 2.1 또는 다음 문서를 참조하세요.