質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.23%

opencv-3.4.3 をCMakeでビルドしたい

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 5,962

MasuNou

score 13

opencv-3.4.3 をCMakeでビルドしたいのですが、ネット等で説明されている状態になりません

Configureしてもオプションの設定欄には
CMAKE_CONFIGURATION
CMAKE_INSTALL_PREFIX

の二つしか出てきません
エラーメッセージは出てきていません

エラーメッセージが書かれる欄には下記のような文が表示されています

The C compiler identification is MSVC 19.14.26433.0
The CXX compiler identification is MSVC 19.14.26433.0
Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2017/community/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x64/cl.exe
Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2017/community/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x64/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2017/community/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x64/cl.exe
Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2017/community/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x64/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Configuring done

 補足情報(FW/ツールのバージョンなど)

opencv-3.4.3
visual studio 2017 community
windows 10
CMake 3.12.3 gui
を使用しています

最終的にはopencv_contrib-masterを使用できるようにしたいと考えています

よろしくお願いします

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

もしかして OpenCV Contribe のレポジトリだけクローンして CMake しています?
OpenCV と OpenCV Contribe の両方のレポジトリをダウンロードして、以下の手順でビルドしていることを確認してください。

Visual Studio 2017にOpenCV3.2.0とopencv_contribを導入する方法

 追記

Tracker API の仕様が変わったのではないでしょうか。
公式ドキュメントを確認してください。
tutorial_introduction_to_tracker

 以下、動作確認したコード

 インストール手順

 1. ソースコードをダウンロードする。

OpenCV 3.4.3 のソースコード 3.4.3.zip 及び OpenCV's extra modules 3.4.3 のソースコード 3.4.3.zip をダウンロードする。

以下のように配置した。

F:
└─OpenCV
    └─3.4.3
        ├─opencv_contrib-3.4.3
        └─opencv-3.4.3

 2. CMake でプロジェクトファイルを生成する。

CMake GUI で以下のように設定し、「Configure」ボタンをクリックする。

  • 「Where is the source code」に「F:\OpenCV\3.4.3\opencv-3.4.3」
  • 「Where to build the binaries」に「F:\OpenCV\3.4.3\build」

コンパイラを選択し、「Finish」をクリックする。

「OPENCV_EXTRA_MODULES_PATH」という項目を探し、「F:/OpenCV/3.4.3/opencv_contrib-3.4.3/modules」を設定する。
もう一度、「Configure」ボタンをクリックする。
「Configuring done」と正常に完了した場合、「Generate」をクリックする。

「F:\OpenCV\3.4.3\build」に「OpenCV.sln」が生成されるので、クリックして、Visual Studio で開く。
Debug モードにし、ソリューションエクスプローラーの「INSTALL」を右クリックし、「BUILD」を選択する。
Release モードにし、ソリューションエクスプローラーの「INSTALL」を右クリックし、「BUILD」を選択する。

環境変数で

  • 「OPENCV_DIR」に「F:\OpenCV\3.4.3\build\install」を設定する。
  • 「Path」に「F:\OpenCV\3.4.3\build\install\x64\vc15\bin」を追加する。

※ vc15 の部分はコンパイラによって異なる。

 サンプルプログラム

#include <opencv2/opencv.hpp>
#include <opencv2/tracking.hpp>

int main()
{
    auto trackerKCF = cv::TrackerKCF::create();
}
cmake_minimum_required(VERSION 2.8)

project(sample)

add_executable(${PROJECT_NAME} src/main.cpp)
find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/22 13:27

    ありがとうございます!!

    紹介していただいたサイトのとおりにしたらある程度うまくいったのですが、
    Trackerの作成において使用するメンバのcreateが存在しないと出てきます。

    なんども申し訳ないのですが、どのような解決方法があるか教えていただけませんか?

    キャンセル

  • 2018/10/22 13:39

    利用は C++ API ということでよろしいでしょうか?
    Tracker の create とは、具体的にはどの関数でしょうか?

    キャンセル

  • 2018/10/22 13:56

    はい。c++のAPIです。

    https://qiita.com/hmichu/items/3615ddcc93851ad59abe
    このソースのプログラムを試しに動かしました
    その結果
    cv::Ptr<cv::Tracker> trackerKCF = cv::Tracker::create("KCF");
    この部分のcreateにエラーが出ます。これはtrackerの作成部分すべてで起きています

    これで回答になっているでしょうか?

    キャンセル

  • 2018/10/22 16:13

    Tracker の API が 3.4.3 で変更になったようです。
    auto trackerKCF = cv::TrackerKCF::create(); で作成できました。
    Web 上の解説記事等は古くなっている可能性があるので、公式リファレンスを参照しましょう。
    https://docs.opencv.org/3.4.3/d0/d0a/classcv_1_1Tracker.html

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る