[Python 입문 튜토리얼] CV2 오류: cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\s

        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 오류 메시지 해결

  1. 이미지 파일 경로가 올바른지 확인하세요. 경로가 올바른지, 해당 파일이 실제로 존재하는지 확인하세요. (중국어 경로는 사용하지 마세요)
  2. OpenCV에서 이미지 파일을 올바르게 읽을 수 있는지 확인하십시오. 일부 이미지 파일이 손상되었거나 OpenCV에서 지원하지 않는 형식일 수 있습니다.
  3. 이미지를 읽기 전에 파일 경로가 올바른지, 파일이 존재하는지 확인하세요. os 모듈의 os.path.exists() 함수를 사용하여 이를 확인할 수 있습니다.
  4. 동시에, picture/tif가 64비트 그림일 수도 있으므로 cv2 라이브러리가 이미지 정보를 정상적으로 이해하고 읽을 수 없게 됩니다. 해결 방법은 2.1 또는 다음 문서를 참조하세요.

추천

출처blog.csdn.net/m0_56729804/article/details/133899054