web-dev-qa-db-ja.com

QtCreatorでopencvをリンクし、Qtライブラリを使用する方法

この質問は何度も繰り返さなければなりませんが、うまくいかず、未回答のままになることがあります。情報源は主にこれらです
http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml
http://www.youtube.com/watch?v=dgcXYQijV6c

これは、私がやるべき/できると思うことの要約です。 (そして今、私にとってはうまくいきます。)願わくば、最初からすべてに言及したいのですが、目的は非常に明確なチュートリアルを書くことです。

QtCreator用OpenCVのインストール

  1. MS Visual Studio 2010 Professionalが既にインストールされています。 (私は学生として無料ライセンスを持っています)-これは必要ではなく、ただ言及するだけだと思います
  2. ダウンロード:Qt 5.0.1 for Windows 32ビット(MinGW 4.7、823 MB)
    2.1Install:警告、Qtが使用するすべてのもの(OpenCVなど)は、名前に空白が含まれていないディレクトリに存在する必要があります。 -つまり、「Program Files」が間違っています。 (ただし、異なるプログラムファイルをCに直接蓄積させたくないので、重要なものがすべてインストールされているフォルダー「Programs」のみを作成しました)
  3. ダウンロード:cmake-2.8.10.2-win32-x86.exe-すべてのユーザーにインストール(これはProgram Filesにあります)
  4. ダウンロード:OpenCV-2.4.0.exe、解凍先: C:\ Programs\opencv24 -dir "opencv"を作成します。別のフォルダ「opencv_bin」を追加します。これは次のようになります。
    C:\ Programs\opencv24\opencv *
    C:\ Programs\opencv24\opencv_bin
  5. MinGWコンパイラへのリンクがあるように、PATH環境変数を設定します。例えば C:\ Programs\Qt\Qt5.0.1\Tools\MinGW\bin;
  6. cmake-gui.exeを開始
    6.1ソースコード:OpenCVのデフォルトディレクトリを設定します。 C:\ Programs\opencv24\opencv
    6.2バイナリ:opencv_bin dirを設定します。 C:\ Programs\copencv24\opencv_bin
    6.3configure:をクリックします
    • MinGW MakefilesおよびSpecify native compilersを選択し、次をクリックします
    • フィールドCはgcc.exe用です。 C:/Programs/Qt/Qt5.0.1/Tools/MinGW/bin/gcc.exe
    • フィールドC++はg ++。exe用です。 C:/Programs/Qt/Qt5.0.1/Tools/MinGW/bin/g ++。exe
    • フィールドフォートランは空にすることができます。[完了]をクリックします
    6.4多くの赤い線が表示されます検索フィールドに、WITH_QT、WITH_TBB、WITH_IPP、WITH_CUDA、CMAKE_BUILD_TYPE
    • WITH_QT-選択する必要があります。
    • WITH_TBB、WITH_IPP、WITH_CUDA-選択解除する必要があります
    • CMAKE_BUILD_TYPE-クリックして、テキスト「デバッグ」(引用符なし)を入力します。
    • [検索]フィールドからテキストをクリアします。
    6.5configureをクリックし、すべての赤い線がなくなるまでconfigureをクリックし続け、次にgenerateおよびclosecmake-gui.exe
  7. terminal(〜command Prompt)に移動し、ビルドがあるディレクトリに移動します (opencv_bin) タイプmingw32-make
  8. プロセスが長時間終了したら、mingw32-make installと入力します
  9. QtCreator/binへのパスをPath変数に追加します C:\ Programs\Qt\Qt5.0.1\Tools\QtCreator\bin

QtCreatorで新しいコンソールアプリを作成しました。

//cvHello.pro
QT       += core
QT       -= gui

TARGET = cvHello
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app
INCLUDEPATH += C:/Programs/opencv24/opencv_bin2/install/include
LIBS += "C:/Programs/opencv24/opencv_bin2/bin/*.dll"

SOURCES += main.cpp
OTHER_FILES += \
    img.JPG

そしてメインファイル:

//main.cpp
#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv/cv.h"

using namespace std;

int main()
{
    cout << "Hello World!" << endl;

    cv::Mat mat;
    mat = cv::imread("img.JPG");
    cvNamedWindow("hello");
    cv::imshow("hello",mat);

    cvWaitKey(0);

    return 0;
}
45
Daniel Katz

最後に私は幸せになり始めています。この質問を調整するとき、すべての方法、LIBSの定義方法を試さなければなりませんでした。それらを手動でリストすることは助けになりましたが、最初は何らかの形で間違って記述しました。

これが最終的にどのように機能するかです:

LIBS += -LC:\\Programs\\opencv24\\opencv_bin2\\bin \
    libopencv_core240d \
    libopencv_highgui240d \
    libopencv_imgproc240d \
    libopencv_features2d240d \
    libopencv_calib3d240d \

ちなみに私が文法の間違いを犯した場合、私は私の英語で申し訳ありません。 :)

12
Daniel Katz

最初に受け入れられた答えは私にとってはうまくいきませんでした。私はMSVC2013 ProfessionalとQT5.9を実行しています。私は、外部ライブラリ(openCVなど)をQTにリンクしようとしているすべての人を助けるシンプルでSUREFIRE CROSS-PLATFORMソリューションを見つけました。

下記の手順はQt5のドキュメントに記載されています。 http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html 「ライブラリを追加するには」セクション.

  1. 作成者の左側にある「プロジェクトペイン」にあるプロジェクトファイルを右クリックし、「ライブラリを追加...」を選択します。
  2. ウィザードの指示に従います

ここからいくつかの特異性を追加しましょう。

  1. 「外部ライブラリ」を選択します
  2. 「ライブラリファイル」の場合は、opencv_worldXXX.libファイル(またはopencv_worldXXXd.libファイルに移動します。どちらか一方のみを指定すると、ウィザードにはもう一方を自動的に含むチェックボックスがあります)[例...\opencv\build\x64\vc12\lib\opncv_world310.lib]
  3. 「Include Folder」の場合、ビルド内の「include」フォルダーに移動します。 [ex。 ...\opencv\build\include]
  4. オペレーティングシステム、動的/静的ライブラリ(適切な方)を選択します
  5. NEXT、CLEAN UP、RUNを押してください!
2
IntenseCorona