0

プロジェクトでオープン ソース ツールを使用しようとしています。Qt5プラグインを使用してVS2010でコーディングしていました。私のプロジェクトをQtに移植したかったのです。VS2010 を使用している間、OpenCV の dll とライブラリが提供されているので、簡単に使用できました。残念ながら、Qt を使用することにしたとき、最初から Qt の設定に従って OpenCV をコンパイルする必要があることを理解しました。

とにかく、cmake ツールを使用して OpenCV 2.4.5 をコンパイルしましたが、opencv のバグに直面しました (コンパイル中に 37% で停止しました) :( その後、OpenCV 2.4.2 をコンパイルし、コンパイルしました。テストしたところ、動作していました私の小さなプログラムのテスト. しかし、それは私の実際のプロジェクトでは機能しませんでした. プログラムをコンパイルして実行しました. しかし、常に実行時エラーが発生します. VS2010ではうまく機能するので、コードに問題がないことはわかっています.私が処理できなかったリンケージの問題。

Qtでコンパイルすると、以下の警告メッセージが表示されました。

:-1: warning: auto-importing has been activated without --enable-auto-import specified on the command line.

以下のコンパイル出力の一部。

LD:\opencv242qt\install\lib -lopencv_core242.dll -lopencv_highgui242.dll -lopencv_imgproc242.dll -lopencv_features2d242.dll -lopencv_nonfree242.dll -lopencv_flann242.dll -lopencv_calib3d242.dll -lopencv_objdetect242.dll -lopencv_stitching242.dll -lopencv_calib3d242.dll -lQtGui4 -lQtCore4 
Info: resolving VTT for cv::SIFT by linking to __imp___ZTTN2cv4SIFTE (auto-import)
Info: resolving vtable for cv::FlannBasedMatcher by linking to __imp___ZTVN2cv17FlannBasedMatcherE (auto-import)
Info: resolving vtable for cv::_InputArray by linking to __imp___ZTVN2cv11_InputArrayE (auto-import)
Info: resolving vtable for cv::_OutputArray by linking to __imp___ZTVN2cv12_OutputArrayE (auto-import)
mingw32-make.exe[1]: Leaving directory `C:/Users/emresaslan/Documents/QtProjects/Project2'
c:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
20:44:09: The process "C:\QtSDK\mingw\bin\mingw32-make.exe" exited normally.

うまくいかなかった理由はわかりませんが、問題は opencv のコンパイルに依存している可能性があります。コンパイル時に、With_Qt オプションを選択し、CUDA オプションのチェックを外しました。

また、スティッチャー クラスのステッチ関数を使用すると、プログラムがクラッシュすることも指摘したいと思います。機能検出後にクラッシュします。まさに、ペアワイズマッチングプロセスがプログラムを殺すと言えます:(

Qt 4.8.1、OpenCV 2.4.2 を使用していますが、この問題を解決するにはどうすればよいですか? Qt を使用するために、プロジェクトをクロス プラットフォームで作業する必要があります。

4

0 に答える 0