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.

Другие вопросы по тегам