티스토리 뷰
OSError: unrecognized data stream contents when reading image file
미남잉 2022. 10. 25. 10:07
OSError [출처]
예외 생성자에 주어진 인자들의 튜플. 일부 내장 예외(예, OSError)는 특정 수의 인자를 기대하고 이 튜플의 요소에 특별한 의미를 할당하는 반면, 다른 것들은 보통 오류 메시지를 제공하는 단일 문자열로만 호출됩니다.
이 예외는 시스템 함수가 시스템 관련 에러를 돌려줄 때 발생하는데, “파일을 찾을 수 없습니다(file not found)” 나 “디스크가 꽉 찼습니다(disk full)” 와 같은 (잘못된 인자형이나 다른 부수적인 에러가 아닌) 입출력 실패를 포함합니다.
생성자의 두 번째 형식은 아래에 설명된 해당 어트리뷰트를 설정합니다. 어트리뷰트를 지정하지 않으면 기본적으로 None 이 됩니다. 이전 버전과의 호환성을 위해, 세 개의 인자가 전달되면, args 어트리뷰트는 처음 두 생성자 인자의 2-튜플만 포함합니다.
아래의 OS 예외 에서 설명하는 것처럼, 생성자는 종종 OSError 의 서브 클래스를 돌려줍니다. 구체적인 서브 클래스는 최종 errno 값에 따라 다릅니다. 이 동작은 OSError 를 직접 혹은 별칭을 통해 생성할 때만 일어나고, 서브 클래싱할 때는 상속되지 않습니다.
이라고 하네요.
제가 난 에러는
OSError: unrecognized data stream contents when reading image file
이고 이미지 파일을 읽을 수 없다라는 문구가 떴고, 에러가 난 명령어는
r_rgb = Image.open(osp.join(self.root, datafiles['r_rgb'])).convert('RGB')
였습니다.
PIL Library에서 이미지를 오픈을 도와주는 Image 모듈이 문제인가 싶어서, 구글링을 했고 아래 링크를 참고했습니다.
[2] https://stackoverflow.com/questions/42462431/oserror-broken-data-stream-when-reading-image-file
[3] https://github.com/python-pillow/Pillow/issues/1510
추가해준 코드로는
from PIL import Image, ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
이며, ImageFile을 코드에선 쓰진 않았는데 일단 추가해주었습니다.
이미지 파일을 읽을 때, 데이터 스트림을 읽을 수 없는 문제로 이미지 파일을 변환할 수 없었으니까 'LOAD_TRUNCATED_IMAGES`를 활성화해서 잘린 이미지를 설명해주는 오류를 해결해주는 부분 같습니다.
다른 답변을 참고해보면, 이미지 형식이나 크기 조정 등을 하려는 경우 이런 Error message가 뜨며, Pillow 같은 경우가 이미지를 열 때 데이터 크기를 조정, 형식 변환 등을 도와주며 로드해주는 역할을 합니다.
일단 해결된 것으로 보아, `IOError: broken data stream when reading image file` 해당 Error와 비슷한 원인이지 않았을까 싶습니다.
제가 사용하는 데이터셋 이미지 파일을 load할 때, 원본 크기가 아니라 transform을 통해 기본적으로 모두 Resize 해주었기 때문에 발생한 듯 합니다.
이상입니다.
'Skills > Error' 카테고리의 다른 글
bash: wget command not found (0) | 2022.12.13 |
---|---|
ModuleNotFoundError: No module named 'skimage' (0) | 2022.12.13 |
[Python] WARNING: There was an error checking the latest version of pip. (0) | 2022.12.11 |
RuntimeError: CUDA error: device-side assert triggered (0) | 2022.11.01 |
IndexError: index 2 is out of bounds for axis 0 with size 2 (0) | 2022.10.26 |
- Total
- Today
- Yesterday
- prompt learning
- Unsupervised learning
- CNN
- 구글드라이브서버다운
- 서버구글드라이브연동
- vscode 자동 저장
- 구글드라이브다운
- 파이썬
- 퓨샷러닝
- 파이썬 딕셔너리
- 딥러닝
- NLP
- 파이썬 클래스 다형성
- stylegan
- 도커
- style transfer
- 도커 컨테이너
- few-shot learning
- support set
- 구글드라이브연동
- 프롬프트
- 데이터셋다운로드
- Prompt
- 서버에다운
- 파이썬 클래스 계층 구조
- cs231n
- docker
- 구글드라이브서버연동
- python
- clip
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |