libpng error处理方式
用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处理方式相关推荐
- libpng error: Not a PNG file
为什么80%的码农都做不了架构师?>>> libpng error: Not a PNG file ----可能图片中有JPEG格式的图片改了后缀名为.png,在Androi ...
- 使用Androidkiller编译APK文件时出现libpng error: Not a PNG file的错误
使用Androidkiller或APKIDE编译APK文件时出现提示: >W: libpng error: Not a PNG file >W: ERROR: Failure proces ...
- (已解决)iOS真机运行 Xcode报错(libpng error: CgBI: unhandled critical chunk)
Cocos2d-x加载图片资源出现libpng error: CgBI: unhandled critical chunk Xcode7.3 设置Remove Text Metadata From ...
- 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这 ...
- libpng error: IDAT incorrect data check
今天在移植项目的时候,发现出现了这个问题, 一看是 png检测问题 libpng error: IDAT incorrect data check ,error failure processing ...
- libpng error: IDAT: invalid distance too far back解决方案
1,原因 在进行行人检测的实验复现时,在读入pos数据时,显示了libpng error: IDAT: invalid distance too far back错误, 在网上查询了很多资料,得知原因 ...
- 解决libpng error: IDAT: invalid distance too far back问题
背景:C++ svm+hog训练行人检测模型 读取图片时出现:libpng error: IDAT: invalid distance too far back 错误原因:新的库里面使用的是libpn ...
- libpng error: IDAT: invalid distance too far back 报错,问题解决
libpng error: IDAT: invalid distance too far back 报错,问题解决 目录 libpng error: IDAT: invalid distance to ...
- libpng error: IDAT: CRC error
import cv2 import osimg = cv2.imread('/cloud_disk/users/huh/dataset/cityscapes/leftImg8bit/val/linda ...
- OpenCV学习笔记(一):OpenCV报错“libpng error: IDAT: invalid distance too far back”
这一阵子在学习用OpenCV的SVM+HOG进行行人捕捉,在学习网上源码的时候使用了OpenCV官方的训练数据集,cv2的库在read训练数据的时候,有那么几个文件夹里面的照片是没办法直接读取,会报错 ...
最新文章
- 学会python爬虫怎么赚钱-自学python爬虫赚钱经历
- SPI四种工作模式时序图
- C#语法:委托与方法
- SPOJ 962 Intergalactic Map (从A到B再到C的路线)
- Redis 持久化——混合持久化
- Linux下grep、egrep及fgrep命令详解
- 摄像头分辨率怎么调整_网络监控摄像头怎么选择 网络监控摄像头选择方法【介绍】...
- Ubuntu16.04.1安装Caffe(GPU)
- 汇编语言和C语言单片机哪个更好用?
- shell引入sql脚本报错_Oracle11g rac集群安装执行脚本报错的解决方法
- VMware安装Windows Server 2003提示Operating System not found
- ktv收银管理系统服务器,KTV收银管理软件
- mysql创建视图语句_MySQL创建视图的语法格式
- 企业生产现场中5S管理的应用
- java基于t-io框架实现区块链中的p2p网络构建模拟区块信息同步
- 基于FPGA的VGA/LCD显示控制器设计(下)
- 自然语言处理总复习(五)—— 词义消歧
- php 占比图,深度|丹尼·格林和克莱·汤普森,两位顶级3D差距在哪里?
- 计算机类专业必备的软件,拿来把你
- excel公式编辑器_V14.0发布:组件化编辑器+数据透视表