在使用TensorFlow通过路径读取图片时,如果有些图片已经发生了损坏,会发生如下的报错:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Expected image (JPEG, PNG, or GIF), got unknown format starting with '<!DOCTYPE HTML P'
[[{{node DecodeJpeg}}]] [Op:IteratorGetNext]
报错后,也不提供损坏的图片的位置。
这里提供一种损坏图片的查找方式,代码如下:
import numpy as np
from PIL import Image
for absolute_path in image_path:
try:
img = Image.open(absolute_path)
except IOError:
print(absolute_path)
try:
img = np.asarray(img)
except:
print('corrupt img', absolute_path)
这里的image_path
是所有图片的地址;
代码通过遍历image_path
中包含的所有图片,最后会将错误图片的位置打印出来。