2012-08-31 121 views
0

我正在用VC++使用OpenCV。該函數正在做它應該做的事情,但在讀取位置時拋出異常導致訪問衝突,並引用ntdll.dll。當代碼正在做它應該做的事時,我會因爲無法處理異常而丟失什麼?訪問衝突讀取位置 - opencv/VC++

void cl::first() 
{ 
    Mat a=imread("C:\\1.jpg"); 
    Mat b; 
    cvtColor(a,b,CV_RGB2BGR); 
    imwrite("C:\\2.jpg",b); 
    return ; 
} 

異常

First-chance exception at 0x77551e86 (ntdll.dll) in app.exe: 0xC0000005: 
Access violation reading location 0x43819ccc. Unhandled exception at 0x77551e86 (ntdll.dll) 
in app.exe: 0xC0000005: Access violation reading location 0x43819ccc. 
The program '[4500] app.exe: Native' has exited with code -1073741819 (0xc0000005). 
+0

重複:http://stackoverflow.com/questions/2623163/opencv-2-0-c-api-using-imshow-returns-unhandled-exception-and-bad-flag – ArtemStorozhuk

回答

1

我有同樣的錯誤,請檢查你的環境變量中

控制面板 - >系統 - >高級系統設置 - >環境變量 - >路徑

確保opencv bin路徑被添加到環境'路徑',然後重新啓動計算機

這應該工作

+0

@ petter-friberg我認爲你刪除了我的評論?我想指出的是,就我而言,我沒有對路徑變量做任何更改,只是重新啓動了機器,然後錯誤消失了。 – N4ppeL

+0

@ N4ppeL我其實只有自定義的mod標記它來刪除第一部分(發誓),但由於系統認爲它沒有用,它被刪除與該單一標誌。對不起,但儘量保持所有評論專業,並沒有任何人需要clean'em了。 –