2012-08-03 93 views
0

我正在研究一個立體聲視差程序,我有左圖和右圖,我正在嘗試讀取。但是,當我嘗試調試時出現錯誤,但它工作正常,如果我只是構建它.. 。所以我只是減少了代碼很簡單的東西...Visual Studio調試器失敗,但程序運行良好時,建立...?

#include <bunch of opencv bits...> 

using namespace std; 
using namespace cv; 

int main() 
{ 
    Mat Left= imread("Left.png", 0); //read images as grayscale 
    Mat Right= imread("Right.png", 0); 

    while (true) { 
     imshow("Left",Left); 
     imshow("Right",Right); 
    } 

} 

與調試(F5)運行我站上罰球線imshow(「左」,左);和它崩潰,報告 OpenCV的錯誤:錯誤標誌(參數或結構域)(無法識別或不支持的陣列型)......等等等等

通過代碼步進我可以看到,沒有什麼是讀取存儲在

然而,事情變得真的是說不清是,如果我只是建立程序(F7)並運行資源管理器(其它項目\ SteroExp \調試)中的.exe ....它運行完全正常。

我的想法...... 是否VS在不存儲圖像的PC上的某個不同的temp目錄運行調試版本?

我使用... W7 64位,VS2010,C++,OpenCV的2.3.1

+0

味道像未定義的行爲 – Andrew 2012-08-03 09:58:19

+0

嗯,這是否意味着我永遠不能調試這個程序? – Oliver9523 2012-08-03 10:27:44

回答

1

首先仔細檢查一下工作目錄項目|屬性|調試> WorkingDirectory被設置爲包含這兩個文件的目錄。

+0

它被設置爲「$(ProjectDir)」,不知道該指向哪裏,但我將其更改爲「Misc Projects \ SteroExp \ Debug」目錄。現在,它的工作,謝謝。 ah默認工作目錄是「Misc Projects \ SteroExp \ SteroExp」,其中存儲項目文件。 – Oliver9523 2012-08-03 10:35:18

+0

從工作目錄下拉菜單中選擇並點擊宏>>。鍵入ProjectDir並查看其實際值。它應該指向Project的目錄(包含.vcxproj文件的目錄)。 – Nick 2012-08-03 10:40:25

1

問題是當前工作目錄。當您從資源管理器運行時,當前目錄是'Misc Projects \ SteroExp \ Debug',但是當您從調試器中獲取'Misc Projects \ SteroExp'時。答案是將您的圖像文件移動到正確的目錄。

+0

我只是嘗試將Left.png和Right.png移動到「Misc Projects \ SteroExp」,但它仍然不會在調試中運行。 – Oliver9523 2012-08-03 10:18:05

相關問題