opencv读图片Premature end of JPEG file?

opencv读一个文件夹中的图片,出现这些信息,如果捕捉这个异常,把这些图片删除?
关注者
35
被浏览
119,961

12 个回答

这个问题我之前遇到了,这些图片能读进来,但是缺失了一些格式信息,上述几个回答都不能够解决问题。

我是试着把所有的图片用opencv读进来(imread),再重新保存一遍(imwrite),图片就不会有问题。

遇到了同样的问题。

针对jpg文件来说,一般是由于文件下载不完整导致的,可以通过判断jpg文件的完整性来避开这个问题。

最简单的办法是判断文件最后两个字节是否是'\xff\xd9',如果不是则表明文件不完整。

def is_valid_jpg(jpg_file):

"""判断JPG文件下载是否完整

"""

if jpg_file.split('.')[-1].lower() == 'jpg':

with open(jpg_file, 'rb') as f:

f.seek(-2, 2)

return f.read() == '\xff\xd9'

else:

return True