1

を使用してファイルシステムから基本的なイメージ ファイルを読み取ることができないという奇妙な問題に直面していますcv::imread。したがって、以下の結果は、行と列が 0 に設定された null データを持つ imageInput になります。

cv::Mat imageInput =  cv::Mat();
imageInput = cv::imread("abc.jpg",cv::IMREAD_COLOR);

興味深いことに、上記のコードをコメントアウトした後、以下のコードは iamge を読み取ることができます。

//cv::Mat imageInput =  cv::Mat();
//imageInput = cv::imread("abc.jpg",cv::IMREAD_COLOR);
IplImage *rImg;
rImg = cvLoadImage("abc.jpg", CV_LOAD_IMAGE_COLOR);

rImg期待どおり、幅 3296、高さ 2256 を取得します。
これがどのように可能かはわかりません。助けてください。どちらの場合も、ビルドは問題ないようです。opencv-2.4.5 と opencv-2.4.6 両方使ってみた

4

1 に答える 1

0

私は今問題を理解することができました。
この問題は、デバッグビルドの静的ライブラリではなく、リリースビルドの静的ライブラリに言及していました。
以前の VC++ プロジェクトでは、デバッグ モードで次の lib 依存関係を含めていました。opencv_core245.lib;opencv_highgui245.lib;opencv_imgproc245.lib;opencv_video245.lib

に変更するとopencv_core245d.lib;opencv_highgui245d.lib;opencv_imgproc245d.lib;opencv_video245d.lib、 imread を使用して問題なく画像を読み取ることができます。

于 2013-08-13T05:39:11.263 に答える