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

argv[1] の代わりに画像のアドレス ("/home/root/lena.jpg") を直接使用しようとしましたが、何も変わりませんでした。

何が問題になる可能性がありますか?

ps: この OpenCV プログラムをクロスコンパイルし、Angstrom Linux がインストールされている BeagleBone で実行しています。この問題はそれに関連していますか?

4

2 に答える 2

1

オングストローム イメージ上の既存の OpenCV ライブラリを削除し、それらを動作中のものに置き換えることで問題を解決しました。

于 2012-07-31T09:16:28.183 に答える
0

画像をpng拡張子で保存してから開いてみてください。何らかの理由で、拡張子が png のファイルは、jpg/gif などの他の拡張子よりも適切に機能します。

于 2015-02-10T01:57:59.437 に答える