1

私はVC2010でopencvを使用しており、それに精通しています。

今日、OPENCV 2.4.5 をインストールし、opencv が機能するかどうかをテストするために画像を表示しようとしました。

このコードがリリース モードで画像を表示するのは驚くべきことでしたが、コンパイラ モードをデバッグに変更すると、opencv は画像を見つけることができず、画像データに対して null を返します!!!

#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
  int main()
 {  
    cv::RNG rng;
    cv::Mat image = cv::imread("1.jpg",-1);
    cv::imshow("Image",image);
    cv::waitKey(0);
return 0;
  }

エラーは次のように表示されます。

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupport
ed array type) in unknown function, file ..\..\..\src\opencv\modules\core\src\ar
ray.cpp, line 2482

リリース モードではコードが正常に動作すると確信しています。そのため、パス、イメージ名、およびすべてが問題ありませんが、デバッグ モードで動作しない理由がわかりません。

入力として絶対パスも指定しましたが、どちらも機能しませんでした!! しかし、再び絶対パスはリリースモードで機能しました!

opencv の 32 ビット ライブラリと 64 ビット ライブラリの両方で自分のプロジェクトもテストしましたが、問題は変わりませんでした。

4

1 に答える 1

1

opencv ライブラリのデバッグ バージョンは、おそらく "jpg" 画像をサポートせずにコンパイルされています。また、この回答を参照してください

ライブラリをリンクしたときに、OpenCV のリリースとデバッグlibを混同していないことを確認してください。デバッグ ライブラリには末尾に d があります。また、opencv_calib3d245d.lib のように、使用している opencv バージョンに基づいて正しいライブラリ名を使用していることを確認してください。

于 2013-07-11T19:58:34.860 に答える