opencv读图片Premature end of JPEG file
这个问题我之前遇到了,这些图片能读进来,但是缺失了一些格式信息,上述几个回答都不能够解决问题。我是试着把所有的图片用opencv读进来(imread),再重新保存一遍(imwrite),图片就不会有问题。
■网友
遇到了同样的问题。针对jpg文件来说,一般是由于文件下载不完整导致的,可以通过判断jpg文件的完整性来避开这个问题。最简单的办法是判断文件最后两个字节是否是\u0026#39;\\xff\\xd9\u0026#39;,如果不是则表明文件不完整。def is_valid_jpg(jpg_file): """判断JPG文件下载是否完整 """ if jpg_file.split(\u0026#39;.\u0026#39;).lower() == \u0026#39;jpg\u0026#39;: with open(jpg_file, \u0026#39;rb\u0026#39;) as f: f.seek(-2, 2) return f.read() == \u0026#39;\\xff\\xd9\u0026#39; else: return True
■网友
我也遇到这个情况,但图片没有问题,目标检测等程序也能正常运行,就是看着满屏的输出很烦,目前没有找到解决方法
■网友
使用skimage可以捕获这个异常
from skimage import io
try:
io.imread(\u0026#39;1.jpg\u0026#39;)
except Exception as e:
print(e)
■网友
我遇到这个问题,主要是因为需要处理的图片不完整,比如没有下载完全的图片。用opencv、Image、skimage直接读取都不会报错,但在opencv中会出现这个warning最后我选择用skimage读取图片后判断图片对象的shape,把数据清了一遍
■网友
这只是opencv的一个stderr的输出罢了。。不是异常,不能catch的
■网友
■网友from PIL import Imagedef check_pic(path): try: Image.open(path).load()\t except: print \u0026#39;ERROR: %s\u0026#39; % path return False else: return True除了load还有其它函数可以触发异常,比如copy(),但是load()的效率应该是最高的(通过观察traceback)。其触发的异常为image file is truncated (7 bytes not processed)。如果刚好8bytes是否就无法识别了呢...当然,这个方法比检验面积是简单多了。当然,如果想要图片剩下的部分,也可以load()后忽略异常,这时再show()或者进行其它操作,就是在处理图片剩余部分。
【opencv读图片Premature end of JPEG file】 注意:verify()对于不完全图片是无法触发异常的。如果有其它效率更高的函数能触发异常,务必告诉我。
■网友
好讨厌啊,我用的python的cv2,用try except不管用
■网友
目前也遇到对了这个问题,有什么方法可以解决吗?
推荐阅读
- 盐城■盐城:千余件老物件慰市民“乡愁”
- 江苏如皋:冬日龙游湖景如画
- |77岁老人烙画《古韵扬州》铁笔生辉“烙”出“好地方”
- 通城|冷空气来袭,耐寒草花“上岗”扮靓通城
- 辩论赛|唇枪舌战!文明校园辩论赛总决赛举行
- 趣头条|奇瑞瑞虎5x,极具性价比,你喜欢吗
- 东台|东台致力打造串场河生态景观廊道
- 教育|中国移动“和教育”智慧校园研讨会在通召开
- 汽车|传华为智能汽车部件采用三元锂电池
- 趣头条|喜欢你,没道理,吉利博瑞就是我的菜
