2010-04-06 56 views
18

我遇到了一些基本OpenCV代碼的問題。 這裏是我的代碼:在OpenCv中使用「cv :: imread」函數讀取圖像的問題

cv::Mat src; 
src=imread("Calibration.bmp",0); 

if (src.empty()) 
    cout << "Cannot load image" << " "; 
else 
    cout << src.cols << " " << src.rows << " "; 

可惜的是CV :: imread返回NULL矩陣與任何類型的輸入圖像的(我曾經嘗試.BMP,.JPG)。文件名似乎工作正常(程序不會以錯誤結束),因爲使用錯誤的文件名會生成錯誤消息。 我曾嘗試使用oldstyle「CvLoadImage」,但發生了相同的結果。 有沒有人有任何想法如何解決這個問題?

回答

22

好吧,我解決了這個問題...... 當你混淆發佈和調試OpenCV庫時會出現問題。 我已經更改項目屬性中的路徑和庫名稱,「cv :: imread」工作得很好。

+9

在您的OpenCV \ lib目錄中,您應該找到兩種類型的.lib文件(例如:cv210.lib和cv210d.lib)。如果您在調試模式下構建解決方案,則在項目屬性中應鏈接到cv210d.lib,如果您要在解除模式下構建解決方案,則應鏈接到cv210.lib。同樣的東西對應於來自OpenCV/bin dorectory的dll文件。我希望這會對一段時間沒有迴應有所幫助和抱歉:/ – Marcin 2010-10-14 12:20:42

+1

這是真的,但爲什麼會發生這種情況?因爲即使混合庫,其他功能也可以完美工作。爲什麼這個功能? http://stackoverflow.com/q/9125817/744859 – 2012-02-03 10:50:04

+1

剛剛從很多頭痛救了我。謝謝。 – Aliostad 2012-02-08 00:59:54

0

當我嘗試加載ARGB位圖圖像(我試圖用顏色加載)時,我有這種行爲。將位圖轉換爲RGB(24bpp)解決了這個問題。

+0

你可以請詳細說明一下代碼嗎? – Maham 2018-03-09 08:29:34

相關問題