簡體   English   中英

OpenCV無法找到圖像

[英]OpenCV can`t find image

我正在嘗試這里的基本教程http://bsd-noobz.com/opencv-guide/40-1-load-and-display-an-image ,它處理加載和顯示圖像。 我是在Visual Studio 2012中做的。

我已將圖像文件“lena.png”放在exe文件旁邊的Debug文件夾中。 當我嘗試從終端執行exe文件時,它只回復“無法加載圖像!”。 我也在Release文件夾中嘗試了相同的結果。

這是我對該程序的代碼:

#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    if(argc > 1){
        cout << argv[1] << endl;
    }

    Mat img = imread("lena.png", CV_LOAD_IMAGE_COLOR);

    if (img.empty())
    {
        cout << "Cannot load image!" << endl;
        return -1;
    }

    namedWindow("image", CV_WINDOW_AUTOSIZE);
    imshow("image", img);
    waitKey(0);

    return 0;
}

我不明白為什么這個hapens,圖片與.exe在同一目錄中,我遵循示例代碼到字母。 請幫我理解為什么它找不到文件!

編輯:哈哈哈哈我修好了。 在憤怒的情況下,我將所有其他依賴項從* .lib更改為* d.lib,因為我正在運行調試版本並且它工作正常。 如果我閱讀關於如何使用opencv的教程,它說有一個區別但是因為它編譯后我認為它會起作用。 我現在要嘗試發布版本並查看它是否有效(當然要更改依賴項)。

編輯2:是的,它有效。 因此,我自己的問題的答案是,您需要將include文件夾中的正確.lib文件鏈接為調試和發布版本的依賴項。 以“d”結尾的調試版和其他版本的版本。 現在我發現問題可能並不那么令人驚訝,但事實並非如此。

也許它與imread的文件格式有關。 嘗試使用.jpg或任何有效的圖像格式。從這里引用,

The function imread loads an image from the specified file and returns it. If the image can not be read (because of missing file, improper permissions, unsupported or invalid format), the function returns empty matrix ( Mat::data==NULL ).

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM