1. 程式人生 > >Opencv3程式設計入門學習筆記(四)之split通道分離Debug過程中0xC0000005記憶體訪問衝突問題

Opencv3程式設計入門學習筆記(四)之split通道分離Debug過程中0xC0000005記憶體訪問衝突問題

這是筆者學習《Opencv3程式設計入門》的第四篇部落格,這篇部落格主要是解決在Windows系統下VS 2013中Debug含有split分離通道色彩函式時報出的0xC0000005記憶體訪問衝突問題,問題表現如下面第一幅圖所示。
報出錯誤圖片

剛剛遇到這個問題的時候,確實花費了不少時間找問題根源,主要是Release版本下這個問題不會出但是在Debug版本下就會報出。“呼叫堆疊”指出opencv_world300.dll錯誤,但是仔細一想,不對啊,我這是debug版本應當使用的是opencv_world300d.dll才對啊,因而可以鎖定是opencv_world300d.lib執行庫在配置的時候出現了錯誤。但是筆者仔細查看了自己的lib執行庫的配置,發現自己把opencv_world300.lib、opencv_world300d.lib、opencv_ts300.lib、opencv_ts300d.lib都進行了配置了啊,並且筆者為了方便在VS2013中進行了Opencv一次性配置,既然配置了為何Debug的時候會定位到opencv_world300.lib呢?這裡筆者猜測可能是存在引用的先後順序,於是筆者把整個VS2013的Opencv3的配置都做了調整,把非Debug的lib(即不帶_d.dll)全部刪除,刪除如下三幅圖。

解決問題步驟1

解決問題步驟2

解決問題步驟3

經過不懈的調整努力,這個問題終於解決了,現在分享一下demo的Debug執行效果。

問題解決後效果圖

注意:如果你開啟了多個VS2013的編輯器,請對每一個都進行確認。

此外,要特別感謝以下兩篇文章。