0

Windows 7 64ビットマシンでEclipse CDT(Indigo Service Release 2)を使用してopencv 2.4.0を使用しています。opencv ダウンロード サイトで説明されている手順に従って、(cmake/visual studio express 10 を使用して) ソースから opencv をコンパイルしました。

(C++ コードで) opencv C 関数を使用していたときは、すべてうまくいきました。cv::Mat を使用しようとすると、リンク エラーが発生しました (「cv::Mat::Mat(_IplImage const*, bool)」への未定義参照など)。

  • opencv C++ 関数を純粋な C 関数と連携させるには、どのライブラリとリンクする必要がありますか? 私はすでにopencv_core240や必要なものとリンクしており、opencv C関数ではうまくいきました。

  • 私は 2 つのバージョンの ocv ライブラリに気付きました.1 つは接尾辞「d」が付いているので、opencv_core240 と opencv_core240d です。2の違いは何ですか?

4

2 に答える 2

1
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;
using namespace std;

int main()
{
    IplImage *image = cvLoadImage("C:\\any_picture.jpg");
    Mat m = Mat(image);
    imshow("test",m);
    waitKey();
    return 0;
}
  1. opencv_core240d.lib、opencv_highgui240d.lib、opencv_imgproc240d.libなどのデバッグファイルをリンクして、上記のコードを試してください
  2. binフォルダーへのパスを環境変数に追加します
  3. 最新のopencv、つまり2.4.3を入手してみてください
于 2013-01-13T02:03:42.663 に答える
0

解決策を見つけました。Eclipseをmingwツールチェーンで使用する場合は、opencvもmingwでコンパイルする必要があります。コマンドラインからopencvをコンパイルするとうまくいきました。

  1. opencvInstallGuideのセクション「コマンドラインからGCCを使用してコンパイルする」に従ってください
  2. mingw32-make、make -jに加えて、「makeinstall」も実行します。これにより、opencvバイナリをビルドするフォルダにインストールディレクトリが作成されます。opencvライブラリはinstall/libに配置されます
  3. install / lib内のlibファイルには、「libopencv_core243.dll.a」のような「.dll.a」拡張子が付きます。プロジェクト内のこれらのlibファイルにリンクするには、[プロパティ]-> [C /C++一般]->[パスとシンボル]->[ライブラリ]に移動します。次に、接頭辞「lib」と接尾辞「.dll.a」を付けずにライブラリ名を追加します。したがって、「libopencv_core243.dll.a」にリンクするには、「opencv_core243」を使用します。
于 2013-01-13T22:30:06.957 に答える