IJG JPEG庫執行時錯誤:Corrupt JPEG data 的解決方案
做嵌入式影象識別,用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 的解決方案
做嵌入式影象識別,用V4L2捕獲影象為JPEG格式,用IJG JPEG庫轉成BMP格式時偶爾出現如下錯誤或警告: Corrupt JPEG data: XX extraneous bytes before marker 0xXX 或 Corrupt JPEG data: pr
執行時錯誤:“stack around the variable…was corrupted”
造冰箱的大熊貓@cnblogs 2018/11/1 引發問題的程式碼片段如下 WORD var; scanf ( "%d", &var ); 包含上述程式碼的程式,編譯正常,執行時也正常接收使用者輸入的資料。但待到程式執行結束時提示“stack ar
AppScan安裝出錯:無法從.NET執行時安全策略中登出Appscan 解決方案
下載AppScan地址: AppScan_8.0破解版.z01 http://download.csdn.net/detail/ahy1024/4598865 AppScan_8.0破解版.z02 http://download.csdn.net/detail/ahy1
php執行時遇到的一些問題和解決方案
1.用php指令碼向伺服器請求資料的時候,總是出現一些警告資訊: PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to us
關於IIS伺服器錯誤:500 Internal Server Error,/”應用程式中的伺服器錯誤,執行時錯誤
注:大神請忽略! 首先描述一下環境,ASP.NET MVC專案,在本機IIS伺服器部署,本機以及區域網其他機器均可以正常訪問網站,部署到Windows Server 2008伺服器,是不是會遇到錯誤:500 Internal Server Error,如下影象這樣子的!
.NET 通過entity framework報數據庫連接錯誤:ORA-01017: invalid username/password; logon denied
ces lse rac string lec oca policy system 得到 如題,答案為:【ORA-01017】.NET程序連接數據庫失敗 轉載文章內容如下: 遇到問題 使用 C#/.NET 開發的一個客戶端程序,需要連接 ORACLE 數據庫,使用 O
用Navicat連接MySQL數據庫出現1251錯誤:密碼方式錯誤
flush cat oca mysql數據庫 方式 with 數據庫 nat l數據庫 原因:因為MySQL8.0是最新版密碼保存方式,而圖形化數據庫管理工具還是原先的密碼保存方式。 解決方式: 用CMD命令號方式進入MySQL use mysql; ALTER USER
Xcode archive 時錯誤:error itms90475
ERROR ITMS-90474: "Invalid Bundle. iPad Multitasking supportrequires these orientations:'UIInterfaceOrientationPortrait,UIInterfaceOrientationPortrai
Android apk執行時錯誤java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient
最近在Hisi3751V500上移植一個新的專案,在執行gitv牌照方apk的時候提示java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient 06-03 17:44:28.966 I/dalvikvm( 36
uploadify JavaScript 執行時錯誤: “$”未定義
這是由於沒有引用jquery的包。 在<head></head>中間引入即可: <script src="../js/jquery-1.2.6.js" type="text/javascript"></script> &n
第一次機房收費登陸-執行時錯誤'91'
背景 最近開始第一次機房收費專案了,這就需要配置源資料庫,但是網上對於配置已經有了很多解決辦法,再此我就不在說明。現在我要解決的問題是在配置完之後,當你登陸時,你會遇到執行時錯誤‘91’這個問題。 出現原因 出現這個問題是由於你資料庫中的sa登入名的密碼與機房收費源系統的密碼不一致,如果
執行時錯誤 terminate called after throwing an instance of 'std l
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
國稅Tax2 0 執行時錯誤429 ActiveX部件不能建立物件的解決辦法
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
python的Error集,17個新手常見Python執行時錯誤
python的Error集,17個新手常見Python執行時錯誤 python及相關工具安裝Error集 1. 如果升級python版本中出現error while loading shared libraries: libpython2.7.so.1.0: cannot open shar
第一次使用jupyter建立python時錯誤:Creating Notebook Failed An error occurred while creating a new notebook.
當我們用命令列在瀏覽器中啟動jupyter notebook後需要點選右上角的New建立新的python檔案,此時會報錯。在Linux下可以用命令列解決這個問題。首先需要找到anaconda2中jupyter檔案,在anaconda2中的share檔案中,對jupyter執行如下命令,來修改jupy
java程式碼的MapReduce打包成jar 報錯: JAVA程式執行時出現:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsEx
以前的學習筆記,整理一下: java程式碼的MapReduce打包成jar 報錯: JAVA程式執行時出現:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at PrintWhat.main(Pri
VB winsock傳送時提示 "執行時錯誤'40006'",我怎麼修改程式碼
這個方法是很好的,但是我在用的時候出現報錯: 引數不可選 然後我改成這樣 '判斷是否連線了,才傳送資料 j = 1 Do Until Winsock1.State = 7 Or j > 600 j =
1008 Elevator (20 分)陣列長度設定的重要性(PAT段錯誤+執行時錯誤)
這道題目簡單:先輸入這段序列的個數,然後依次輸入序列,計算從第0層開始走完這段序列需要的時間 下面是第一次提交的程式碼及結果: 嚇我一跳,“段錯誤”還行 改成下面的就通過了(差別就在int i
關於 C#呼叫一個C/C++dll庫執行時實現多個應用(靜態變數區分) 的解決方法
需求 VS編寫了純C(windows)通訊庫,需要多例項(靜態變數標誌一個例項,達到互相靜態變數不干涉)。 當前問題 dll中使用了全域性static的標
機房收費系統登陸客戶端錯誤(二)執行時錯誤“-2147217887”
解決了執行錯誤91之後可能還會出現這個錯誤,如圖: 什麼是OLE DB?OLEDB是微軟的戰略性的通向不同的資料來源的低階應用程式介面。OLE DB不僅包括微軟資助的標準資料介面開放資料庫連通性(ODBC)的結構化查詢語言(SQL)能力,還具有面向其他非SQL