当前位置:   article > 正文

OSError: image file is truncated (4 bytes not processed)

oserror: image file is truncated (4 bytes not processed)

项目场景:

labeme打开图像报OSError: image file is truncated (4 bytes not processed)错误:
例如:使用labelme标注文件时打开图片闪退,之后shell界面报OSError: image file is truncated (4 bytes not processed)


问题描述:

1.我们发现这个问题是图片格式出问题了,用opencv打开图片查看图片格式,有问题的图片格式是object,没有问题的图片格式是uint8:
2.直接对有问题的图片转格式,代码为:

im_rr = Image.fromarray(np.uint8(img)) #img为有问题的图片
  • 1

报错:int() argument must be a string, a bytes-like object or a number, not ‘JpegImageFile’


解决方案:

确定是格式问题,使用另一种转格式的方式:

im = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  • 1

中间还出现中文路径问题,使用如下代码读取:

img = cv2.imdecode(np.fromfile(os.path.join(path1,imdir),dtype=np.uint8),-1)
  • 1

原因分析:

对比转格式后能正常用labelme打开的图片,我们发现原图片出现了乱码,才导致labelme和opencv读取异常
原始图片
原始图片
转格式后的图片
转格式后的图片


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/304410
推荐阅读
相关标签
  

闽ICP备14008679号