在我开展项目时,我注意到我无法加载图片。这是我用来检查的简单代码:
#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程序,然后在安装了Angstrom Linux的BeagleBone上运行它。这个问题能解决吗?
答案 0 :(得分:1)
我通过删除我的angstrom图像上的现有OpenCV库并将其替换为工作图来解决了我的问题。
答案 1 :(得分:0)
尝试使用png扩展名保存图像,然后将其打开。出于某种原因,具有png扩展名的文件比jpg / gif等其他扩展名更好。