2013-03-15 86 views
0

我正嘗試在opencv中讀取墊子形式的圖像並顯示它。代碼編譯良好,但運行時給出運行時錯誤,並且圖像不顯示。 這裏是我的代碼:以墊子形式顯示圖像

#include "stdafx.h" 
#include<cv.h> 
#include<highgui.h> 
#include<iostream> 
using namespace cv; 
using namespace std; 

void main() 
{ 
    Mat Img; 
    Img=imread("C:/Documents and Settings/image1.jpg"); 
    cvNamedWindow("Image",CV_WINDOW_AUTOSIZE); 
    imshow("Image", Img); 
    cvWaitKey(0); 
} 

誰能告訴我我要去哪裏錯了?

+0

錯誤說的是什麼? imread中有沒有有效的圖像? – Barshan 2013-03-15 06:16:50

+0

這是一個「調試錯誤」,表示「應用程序請求運行時以非常規方式終止」。窗口打開,但圖像不顯示@Barshan Das – 2013-03-15 06:21:28

+0

我想再問一件事,因爲我是openCV的新手,所以你可以指導我哪種數據格式對圖像處理更有效,以便我將重點放在它上面。 .. @ Barshan Das – 2013-03-15 06:25:12

回答

0

最有可能的是imread()失敗。除非你開始檢查函數的成功,否則你會知道這是一件很重要的事情。

有幾個原因,它可能會失敗:

  • 您沒有權限訪問該文件。
  • 路徑錯誤。

就你而言,這可能是第一個。因此,將您的代碼更改爲:

Mat Img; 
Img = imread("C:\\Documents and Settings\\image1.jpg"); 
if (Img.empty()) { 
    std::cout << "!!! Failed to open the file\n"; 
    return; 
} 

並注意文件路徑是如何不同的。

+0

好,問題是「imread()」!!!,我已經嘗試了兩種給路徑的方式,但是圖像沒有被讀取!我對於爲什麼會發生這樣的事情一無所知......我做了正如你所說的和「無法打開文件」顯示@ karlphillip – 2013-03-16 05:15:25

+0

很確定應該有一個用戶名前的文件。確保路徑存在,並且您有權訪問該文件。 – karlphillip 2013-03-16 17:09:26