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

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

新規登録して質問してみよう
ただいま回答率
85.50%
CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

解決済

1回答

8206閲覧

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

MasuNou

総合スコア13

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

0クリップ

投稿2018/10/19 08:00

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を使用できるようにしたいと考えています

よろしくお願いします

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

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 の部分はコンパイラによって異なる。

サンプルプログラム

cpp

1#include <opencv2/opencv.hpp> 2#include <opencv2/tracking.hpp> 3 4int main() 5{ 6 auto trackerKCF = cv::TrackerKCF::create(); 7}

cmake

1cmake_minimum_required(VERSION 2.8) 2 3project(sample) 4 5add_executable(${PROJECT_NAME} src/main.cpp) 6find_package(OpenCV REQUIRED) 7 8include_directories(${OpenCV_INCLUDE_DIRS}) 9target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS}) 10

投稿2018/10/19 08:25

編集2018/10/22 07:10
tiitoi

総合スコア21954

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasuNou

2018/10/22 04:27

ありがとうございます!! 紹介していただいたサイトのとおりにしたらある程度うまくいったのですが、 Trackerの作成において使用するメンバのcreateが存在しないと出てきます。 なんども申し訳ないのですが、どのような解決方法があるか教えていただけませんか?
tiitoi

2018/10/22 04:39

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

2018/10/22 04:56

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

2018/10/22 07: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
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問