IJG JPEG库运行时错误:Corrupt JPEG data 的解决方案
来源:互联网 发布:我是一名淘宝放单主持 编辑:程序博客网 时间:2024/05/22 17:43
做嵌入式图像识别,用V4L2捕获图像为JPEG格式,用IJG JPEG库转成BMP格式时偶尔出现如下错误或警告:
Corrupt JPEG data: XX extraneous bytes before marker 0xXX
或
Corrupt JPEG data: premature end of data segment
由于这些错误在IJG JPEG库里只认为是警告,如果不对其处理,代码将继续执行,因而捕获的图像不正常。这个错误对我的处理算法结果造成影响,决定排除。
Google百度下来发现没有什么好的解决方案,最好的一个是对 Corrupt JPEG data: XX extraneous bytes before marker 0xXX的解决,他是这样做的:
意思是把WARNMS2()注掉,然后重新编译IJG JPEG源码,就不会出现Corrupt JPEG data: XX extraneous bytes before marker 0xXX。这个可有点勉强。。。太麻烦了,总应该有好的办法。
Google百度一下 WARNMS2,没有~于是找 JWRN_EXTRANEOUS_DATA,
找到了jerror.h的源码,看到下面有一段:
发现发出的异常消息是emit_message,异常等级为-1, 于是处理掉这个异常就OK了!
代码如下:
先声名一个异常处理函数:my_emit_message
再捕获这个异常(注意这里没写出其它异常类型处理,如error_exit):
这样就解决了,Corrupt JPEG data: XX extraneous bytes before marker 0xXX 问题,不过把所有的emit_message异常都屏蔽了,并认为是失败,代码运行后发现Corrupt JPEG data: premature end of data segment也是其中之一,所以也正好都解决了。代码运行了几分钟很正常,都显示屏蔽了。
这个方法发上来备忘一下,也给需要的人参考。
- IJG JPEG库运行时错误:Corrupt JPEG data 的解决方案
- IJG JPEG库运行时错误:Corrupt JPEG data 的解决方案
- 使用IJG JPEG库
- 解决Ios加载大图时出JPEG Corrupt JPEG data: premature end of data segment错误,导致加载时卡的问题。
- JPEG转RGB Bmp(IJG库 jpeg.lib)
- 使用IJG库读写JPEG格式文件
- IJG JPEG使用说明
- IJG JPEG使用说明
- ijg jpeg 函数库:文件列表
- ijg jpeg 函数库:代码规则
- 使用IJG读写JPEG格式文件
- 使用IJG读写JPEG格式文件
- IJG JPEG 函数库:文件列表
- 使用IJG读写JPEG格式文件
- 使用IJG读写JPEG格式文件
- 使用IJG读写JPEG格式文件
- IJG JPEG 函数库:文件列表
- Corrupt JPEG data: premature end of data segment
- spring 定时器实现
- 在Linux安装ORALCE11g数据库总结
- 取得 wince 剩余电量和wifi信号强度
- server-u匿名登陆
- js event 图例
- IJG JPEG库运行时错误:Corrupt JPEG data 的解决方案
- 发布一个纯C语言的开发平台1(数据结构和运行系统)
- Epigrams on Programming
- 查询时,清空checkbox
- 求php md5 加密函数
- .net 中HttpHandler的应用
- 网络热门话题背后的黑客“放蛊术”
- Teach Yourself Programming in Ten Years
- ExtJS的使用方法汇总(1)——配置和表格控件使用