用opencv读取某图像时,报错libpng error: Read Error。
可以发现的是,这是一张有损的图像,虽然imgcat可以查看,而且也可以预览,但是该图像,不能打开,且不能直接imread,并且try except不能捕获该错误。

try:x = cv2.imread("85b3dca3_17dee0c3f4d2a48.png",-1)
except Exception as e:print('遇到错误: ',e.__class__.__name__,e)

上述方式不能捕获到该异常,只会打印libpng error: Read Error

解决方式:用Image读取然后转化到opencv读取,此时不会有异常抛出

import cv2
from PIL import Image
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
try:img = Image.open("85b3dca3_17dee0c3f4d2a48.png").convert("RGB").save("w.png")img = cv2.imread("w.png")
except Exception as e:print('遇到错误: ',e.__class__.__name__,e)

对于c++,也存在读取图像失败的情况,这儿,我直接不处理这些图像

try{image = cv::imread(imagePathList[i], cv::IMREAD_UNCHANGED);}catch (const exception &e) {cout << "读取图像失败图像失败"  << e.what();}
if (image.empty()) continue;

对于传过来的字节流,进行imdecode的时候,部分图像由于有损,因此会报PNG input buffer is incomplete 的错误,对于这些图像,也是不进行处理

    //const std::vector<int8_t> &imageif (image.empty()){LOG(ERROR) << "@@@EMPTY_IMAGE_STREAM@@@ " << input_id;return;}cv::Mat origin_image;try{origin_image = cv::imdecode(image, IMREAD_UNCHANGED);}catch (const exception &e) {LOG(ERROR) << "imdecode图像失败"  << e.what();}if (origin_image.empty()) return;

libpng error处理方式相关推荐

  1. libpng error: Not a PNG file

    为什么80%的码农都做不了架构师?>>>    libpng error: Not a PNG file  ----可能图片中有JPEG格式的图片改了后缀名为.png,在Androi ...

  2. 使用Androidkiller编译APK文件时出现libpng error: Not a PNG file的错误

    使用Androidkiller或APKIDE编译APK文件时出现提示: >W: libpng error: Not a PNG file >W: ERROR: Failure proces ...

  3. (已解决)iOS真机运行 Xcode报错(libpng error: CgBI: unhandled critical chunk)

    Cocos2d-x加载图片资源出现libpng error: CgBI: unhandled critical chunk  Xcode7.3  设置Remove Text Metadata From ...

  4. libpng error: iTXt: chunk data is too large error: PNG unsigned integer out of range

    使用png读某些png时,出现libpng error: iTXt: chunk data is too large error: PNG unsigned integer out of range这 ...

  5. libpng error: IDAT incorrect data check

    今天在移植项目的时候,发现出现了这个问题, 一看是 png检测问题 libpng error: IDAT incorrect data check ,error failure processing ...

  6. libpng error: IDAT: invalid distance too far back解决方案

    1,原因 在进行行人检测的实验复现时,在读入pos数据时,显示了libpng error: IDAT: invalid distance too far back错误, 在网上查询了很多资料,得知原因 ...

  7. 解决libpng error: IDAT: invalid distance too far back问题

    背景:C++ svm+hog训练行人检测模型 读取图片时出现:libpng error: IDAT: invalid distance too far back 错误原因:新的库里面使用的是libpn ...

  8. libpng error: IDAT: invalid distance too far back 报错,问题解决

    libpng error: IDAT: invalid distance too far back 报错,问题解决 目录 libpng error: IDAT: invalid distance to ...

  9. libpng error: IDAT: CRC error

    import cv2 import osimg = cv2.imread('/cloud_disk/users/huh/dataset/cityscapes/leftImg8bit/val/linda ...

  10. OpenCV学习笔记(一):OpenCV报错“libpng error: IDAT: invalid distance too far back”

    这一阵子在学习用OpenCV的SVM+HOG进行行人捕捉,在学习网上源码的时候使用了OpenCV官方的训练数据集,cv2的库在read训练数据的时候,有那么几个文件夹里面的照片是没办法直接读取,会报错 ...

最新文章

  1. 学会python爬虫怎么赚钱-自学python爬虫赚钱经历
  2. SPI四种工作模式时序图
  3. C#语法:委托与方法
  4. SPOJ 962 Intergalactic Map (从A到B再到C的路线)
  5. Redis 持久化——混合持久化
  6. Linux下grep、egrep及fgrep命令详解
  7. 摄像头分辨率怎么调整_网络监控摄像头怎么选择 网络监控摄像头选择方法【介绍】...
  8. Ubuntu16.04.1安装Caffe(GPU)
  9. 汇编语言和C语言单片机哪个更好用?
  10. shell引入sql脚本报错_Oracle11g rac集群安装执行脚本报错的解决方法
  11. VMware安装Windows Server 2003提示Operating System not found
  12. ktv收银管理系统服务器,KTV收银管理软件
  13. mysql创建视图语句_MySQL创建视图的语法格式
  14. 企业生产现场中5S管理的应用
  15. java基于t-io框架实现区块链中的p2p网络构建模拟区块信息同步
  16. 基于FPGA的VGA/LCD显示控制器设计(下)
  17. 自然语言处理总复习(五)—— 词义消歧
  18. php 占比图,深度|丹尼·格林和克莱·汤普森,两位顶级3D差距在哪里?
  19. 计算机类专业必备的软件,拿来把你
  20. excel公式编辑器_V14.0发布:组件化编辑器+数据透视表

热门文章

  1. Cnskype移动办公现状分析管理
  2. 【图文详解:索引极简教程】SQL 查询性能优化原理
  3. 极客爱情 2.4 | 和程序员男友过节是这样的
  4. PortableApps使用入门
  5. 很值得看看的中文翻译The Django Book
  6. matlab 数字波束合成,dbf数字波束合成
  7. Java降落伞_使用DJI Onboard SDK进行降落伞部署
  8. hsqldb 的简单使用
  9. 软件开发团队中各个成员的英文简称
  10. 印象笔记中可以使用html语言吗,你知道吗,在印象笔记里也能用 Markdown 写作