2016-09-07 2 views
3

import matplotlib.pyplot as plt하기 matplotlib : ValueError를 : 잘못된 PNG 헤더

나는 같은 폴더에 다른 많은 PNG 사진들 사이에서 PNG로 사진을 imread하려고 노력했다. 일부 사진은 다음 줄을 사용하여 오류없이 읽히고 일부는 "ValueError : PNG header not invalid"를 반환합니다. 그 원인은 무엇일까요? 그들은 모두 정상적인 사진처럼 보입니다.

plt.imread(filename)

답변

0

는 내가 그 파일을 도착하기 전에 수동으로해야합니다 누군가가 PNG 확장에 JPG 파일을 변경 밝혀졌습니다. 이러한 파일은 OS의 사진 뷰어에서 올바르게 열리므로 같은 배치의 실제 png 파일과 구별 할 수는 없지만 python 스크립트는 png 파일로 처리 할 수 ​​없습니다. 알파 채널이 없습니다.

0

마찬가지로 @MichM은 이미 이미지의 헤더가 변경되어 유효한 png 이미지가 아니라고 밝혔습니다. 당신이 https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imread.html?highlight=imread#matplotlib.pyplot.imread

에서하기 matplotlib의 imread의 문서를 읽을 경우

plt.imread(filename, 0)

같은 이미지를 읽기 -> 형식이 제공되는 경우, 그렇지 않으면 형식 추론, 즉 유형의 파일을 읽으려고합니다 파일명. 추론 할 수있는 것이 없으면 PNG가 시도됩니다. < -