Trouble/OpenCV

이미지가 일부가 깨져 열리지 않는 문제 : image file is truncated

침닦는수건 2023. 8. 25. 20:29
반응형

이미지 파일이 잘 존재하고 뷰어로는 잘 열리는 상황에서도 opencv cv2.imread로 이미지가 읽히지 않는 현상이 있다. 

 

결론부터 말하면 이미지 파일이 손상되어있는 것이 원인인데 뷰어에서는 열리므로 약간 손상되어있는 것이다. 

 

자세히 보면 아래 사진처럼 뷰어에서 일부가 회색으로 보일 것이다. 이미지가 실제로 (128, 128, 128)을 갖는 것이 아니라 pixel에 값이 존재 하지 않는 것이다.

 

 

문제 상황

check0 = os.path.exists(img_path) # True
check1 = os.path.isfile(img_path) # True

cvimg = cv2.imread(img_path) # None
pilimg = Image.open(img_path) # image file is truncated, error

 

해결법

from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
img = Image.open(img_path)# truncated region is filled with (0, 0, 0)
img = np.asarray(img)

 

 

 
반응형