2

当我在做一个项目时,我注意到我无法加载图像。这是我用来检查的简单代码:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std; 

int main( int argc, char** argv )
{ 
    if( argc != 2) 
    {
     cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
     return -1;
    } 

    Mat image;
    image = imread(argv[1], CV_LOAD_IMAGE_COLOR);   // Read the file

    if(! image.data )                              // Check for invalid input
    {
        cout <<  "Could not open or find the image" << std::endl ;
        return -1;
    }

    Mat gray_image;
    cv::cvtColor(image, gray_image, CV_RGB2GRAY);

    imwrite("Gray_Image.jpg",gray_image);

    return 0;
}

这是我执行它时的输出:

root@beaglebone:~# ./tryit lena.jpg 
Could not open or find the image

我尝试直接使用图像的地址(“/home/root/lena.jpg”)而不是 argv[1] 但没有任何改变。

可能是什么问题?

ps:我正在交叉编译这个 OpenCV 程序,然后在我的 BeagleBone 上运行它,该 BeagleBone 上安装了 Angstrom Linux。这个问题能和它有关吗?

4

2 回答 2

1

我通过删除我的埃图像上现有的 OpenCV 库并将它们替换为工作库来解决我的问题。

于 2012-07-31T09:16:28.183 回答
0

尝试使用 png 扩展名保存图像,然后打开它。出于某种原因,具有 png 扩展名的文件比 jpg/gif 等其他扩展名更好。

于 2015-02-10T01:57:59.437 回答