OpenCV не может загрузить изображение
Работая над проектом, я заметил, что не могу загружать изображения. Вот простой код, который я использовал для проверки:
#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, на котором установлен Angstrom Linux. Может ли эта проблема с этим связана?
2 ответа
Я решил свою проблему, удалив существующие библиотеки OpenCV на моем образе angstrom и заменив их рабочими.
Попробуйте сохранить изображение с расширением png и затем открыть его. По некоторым причинам, файлы с расширением png работают лучше, чем другие расширения, такие как jpg/gif.