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

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

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

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

Visual Studio 2010

Microsoft Visual Studio 2010はMicrosoftが提供している統合開発環境(IDE)です。

OpenCV

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

Q&A

解決済

2回答

646閲覧

OpenCVをCMakeでビルドする方法(グレーコード投影パターンを作成したい)

hikaparo

総合スコア17

CMake

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

Visual Studio 2010

Microsoft Visual Studio 2010はMicrosoftが提供している統合開発環境(IDE)です。

OpenCV

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

0グッド

0クリップ

投稿2018/10/27 08:35

自分はプロジェクタを使いいろいろやろうとしているところで、その過程でopenCVを利用してグレーコード投影パターン画像を生成しようとしています。
それを生成するまでの過程でのプログラムで異常があると分かったのですがどうやら開発環境の構築があまりうまくいってないということがわかりました。
そこでここに質問された方の回答を参考にビルドしてみたのですがなかなかうまくいきませんでした。
ここで質問したのですが少々期限が迫っていて早めの回答がほしかったので質問しなおしています。
行ったチャートをここに書きますのでわかる方ご教授いけたらすごくうれしいです。
また今後ビルドする方は解決しましたら参考にしてください。

環境は下記のとおりです。
windows7 Professional 64ビット
opencv3.4.3
Microsoft Visual Studio 2010 Professional ver 10.0.40219.1 SP1Rel

<行ったチャート> <1> C:\に新規ファイルでOpenCV,そのなかに3.4.3を作成 <2> OpenCV3.4.3-vc14-vc15.exeを起動して、3.4.3内にEXTRACTするとopencvという ファイルができたので、中身をコピーして3.4.3内に貼り付け、opencvは消しました (ここがいけなかったのか・・・?) <3> open-cv-3.4.3とopencv-contrib-3.4.3を3.4.3内に貼り付けしました。 <4> CMake(cmake-gui)を起動し、 「Where is the source code」に「C:\OpenCV\3.4.3\opencv-3.4.3」、 「Where to build the binaries」に「C:\OpenCV\3.4.3\build」としてconfigure、 自分の使っている「visual Studio 10 2010 Win64」、 下はそのまま「use default~」を選択しました。 <5> 「OPENCV_EXTRA_MODULES_PATH」を探し、 「C:/OpenCV/3.4.3/opencv_contrib-3.4.3/modules」を記入しconfigureした。 <6> そしたら全部の赤が消えると思ったが赤色が消えなかった。 だがそのままConfiguring doneと出たので Generateをクリック→Gnererating doneとなったのでCMake閉じました。 (この時点でなにかおかしいかもと思いましたが初心者すぎてわかりませんでした・・・) <7> C:\OpenCV\3.4.3\buildからOpenCV.slnをダブルクリックし、visual studio 2010を起動して CMakeTargetsのINSTALLをスタートアップ項目にしました。 <8> 参考質問の指示に従いdebugにし右クリックでビルドを開始しました。 この時点でかなりのエラーと警告(200と400ほど)を吐いており、 なにが足りないのかわからない状況です

自分が質問したURL、そして回答者さんからいただいた参考質問のURLを二つ張っておきます。
ここで自分が質問した内容のURL
参考にした質問のURL

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

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

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

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

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

guest

回答2

0

ベストアンサー

OpenCV3.4.3-vc14-vc15.exeを起動

この時点で手順どおりになっていないように思います。
最初の手順では、バイナリではなく、OpenCV 及び opencv-contrib のソースコードをダウンロードして、配置するとなっています。まず古い OpenCV はフォルダごと削除してください。

Windows で OpenCV を導入する方法 を参考に、手順どおりにもう一度試してみてはどうでしょうか。Cドライブの場合、E:\ は C:\ に読み替えてください。

自宅のPCでも OpenCV の導入を試しましたが、記述通りの手順でインストールできました。opencv2/structured_light.hpp の include も確認しました。

追記

1. 以下のようなディレクトリ構成を作成する。

sample ├─CMakeLists.txt └─src └─main.cpp

CMakeLists.txt の内容

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})

main.cpp の内容

#include <opencv2/opencv.hpp> int main() { cv::Mat img(100, 100, CV_8UC3, cv::Scalar(255, 255, 0)); cv::imshow("sample", img); cv::waitKey(); }

2.CMake GUI を開き、以下のように設定する。

Where is the source code: <sample フォルダのパス>
Where to build the binaries: <sample フォルダのパス>\build
Cofigure する。
Generate する。

(OpenCV をビルドしたときの手順を思い出してください。)

3. <sample フォルダのパス>\build に生成された *.sln ファイルを Visual Studio で開いて、ビルドする。

Visual Studio で Release モードにし、ソリューションエクスプローラーで sample を右クリックして、「スタートアッププロジェクトに設定」を選択
そしてビルドする。

投稿2018/10/27 09:19

編集2018/10/29 04:14
tiitoi

総合スコア21956

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

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

hikaparo

2018/10/29 03:08

binファイルの生成はできたようなのですが、サンプルを入れても赤ぐにゃラインが出てきます。 OpenCVが使えるか試すの欄のCMakeLists.txtなどの部分がよくわからず手間取ってるのがあるかもしれません。 よくわからずmain.cppのサンプルだけいれてしまいました。
hikaparo

2018/10/29 03:12

環境変数もしっかりと設定しました。 「C:」と、2010を使っているのでで「v10」の部分も書き換えもしました。
tiitoi

2018/10/29 03:20

サンプルプログラムのビルド方法を追記しました。 CMake GUI で、cmake を実行しましたか?上記は CMake を使ったプロジェクトの一般的なビルド手順になります。
hikaparo

2018/10/29 03:45

CMakeの段階でError in configuration process, project files may be invalidというエラーがでてしまいました。 Where is the source code:C:/OpenCV/3.4.3/sample Where to build the binaries:C:/OpenCV/3.4.3/sample/build  と、設定しました。 OpenCV └─3.4.3   └─sample(名前つけて作った)     ├─CMakeLists.txt(メモ帳で名前つけて中身コピーして作った)     └─src(名前つけて作った)      └─main.cpp という形で作りました。 作る場所がわるかったのでしょうか?
tiitoi

2018/10/29 03:58

sample の場所はデスクトップとかどこでもよいです。 作成されたファイル構成もあっています。 「Error in configuration process, project files may be invalid」の前に CMake GUI の出力欄になにかエラーメッセージが出ませんでしたか?
hikaparo

2018/10/29 04:05

コピーして出力欄をすべて貼り付けます。 線の間が赤文字でした。(どの部分が赤文字かわからないので自分で線を書きました。) The C compiler identification is MSVC 16.0.40219.1 The CXX compiler identification is MSVC 16.0.40219.1 Check for working C compiler: c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/x86_amd64/cl.exe Check for working C compiler: c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/x86_amd64/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 (x86)/Microsoft Visual Studio 10.0/VC/bin/x86_amd64/cl.exe Check for working CXX compiler: c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/x86_amd64/cl.exe -- works Detecting CXX compiler ABI info Detecting CXX compiler ABI info - done Detecting CXX compile features Detecting CXX compile features - done OpenCV ARCH: x64 OpenCV RUNTIME: vc10 OpenCV STATIC: OFF ============================================= CMake Error at C:/OpenCV/3.4.3/build/install/x64/vc10/lib/OpenCVModules.cmake:375 (message): The imported target "opencv_face" references the file "C:/OpenCV/3.4.3/build/install/x64/vc10/lib/opencv_face343d.lib" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "C:/OpenCV/3.4.3/build/install/x64/vc10/lib/OpenCVModules.cmake" but not all the files it references. Call Stack (most recent call first): C:/OpenCV/3.4.3/build/install/x64/vc10/lib/OpenCVConfig.cmake:112 (include) C:/OpenCV/3.4.3/build/install/OpenCVConfig.cmake:140 (include) CMakeLists.txt:6 (find_package) =============================================== Configuring incomplete, errors occurred! See also "C:/OpenCV/3.4.3/sample/build/CMakeFiles/CMakeOutput.log".
tiitoi

2018/10/29 04:42

find_package(OpenCV) に失敗していますね。 C:/OpenCV/3.4.3/build/install/x64/vc10/lib/opencv_face343d.lib は実際あるのでしょうか?opencv_face343d.lib はデバッグ用のバイナリです。 もしない場合は OpenCV を入れるときの手順で Visual Studio でビルドするとき、「デバッグ」と「リリース」両方でビルドしましたか?
hikaparo

2018/10/29 04:49

確認したところありませんでした。 デバッグとリリースの順で両方ビルドしたのですがどちらも多くのエラーをはいてるのがきになりました。 もう一度最初からビルドまでしてみます。
hikaparo

2018/10/29 05:10

今ビルドしているところですが、visual studioでビルドする際、デバッグにしビルドするとかなりエラーと警告が発生するのですがスルーして構わないのでしょうか? リリースにしてビルドする際もかなりのエラーと警告が発生するのですが無視してました。
tiitoi

2018/10/29 05:13 編集

警告はいいですが、エラーはおかしいと思います。 どのようなエラーかいくつかでいいので貼れますか? 関係あるかはわかりませんが、1つ気になるのは Visual Studio 2010 が古いということなんですよね。 最近のコードは C++11 が使われていますから、C++11 の機能を使ったコードは Visual Studio 2010 だとビルドできないはずです。OpenCV 3.4.3 のコードに C++11 が使われているかどうかはちょっとわかりませんが。
hikaparo

2018/10/29 05:16

かなり発生していますで解決方法の記入法で写真を載せたいと思います。
tiitoi

2018/10/29 05:28

画像添付ありがとうございます。 リリースでもデバッグでもこのようにエラーが大量に出ているのであれば、ビルドが失敗してます。 一応確認ですが、手順において当初質問欄にかかれていた`OpenCV3.4.3-vc14-vc15.exeを起動して` など、ダウンロードしたソースコード (opencv_contrib-3.4.3、opencv-3.4.3) を配置すること以外のことはしていないですよね? Visual Studio 2010 でビルドできるのかはちょっと調べてみますね。
hikaparo

2018/10/29 05:36

はい。最初に書いた起動してうんぬんも、それ以外の意味不明な行動もしていません。 (本当にすみませんでした) 頂いたリンクのOpenCVを導入する方法というページ以外のことはしていません。
tiitoi

2018/10/29 05:48

VS2010をインストールして確認しようと思いましたが、もう Microsoft のサイトでは配布されてないので試せませんでした。 一応、同様の手順を解説されてるサイトを貼っておきます。 https://www.buildinsider.net/small/opencv/003#cmake CMake まではうまくいって、環境変数の設定も行ったとのことなので、あとはこのビルドだけ通せればいいので、もうひと押しですね。。 ただなぜビルドが通らないのかそのエラーメッセージだけですと、ちょっと原因がわからないです。
tiitoi

2018/10/29 05:50

原因として他に考えられるのは Visual Studio のバージョンぐらいしか思いつかないです。VS 2017 Community は無料ですが、新しいバージョンに上げるのは難しいでしょうか?
hikaparo

2018/10/29 05:55

私もバージョンが古いという指摘を受けて検索してみたところ、 同じくvisual studio 2017 communityというのが無償で提供されてる情報までたどり着きました。 ちょっと導入してきます。 気になる点として新しいのにした場合、CMakeの使ってるvisual studioの選択のところでは visual studio 15 2017 win64を選択すればいいのでしょうか?
tiitoi

2018/10/29 05:59

そうですね。2017 で試される際はお手数ですが古いファイルは一旦削除してください。 コンパイラの選択は「visual studio 15 2017 win64」でよいです。 また環境変数の Path の方に設定するディレクトリの場所もそれに伴いかわります。
hikaparo

2018/10/29 06:07

わかりました。 Pathのほうはこれまでと同じとおりにやれば変わる場所は、vc10をvc15にするくらいですよね? OPENCV_DIRはそのままで大丈夫ですよね? インストールが終わったらファイルの作成からやってみます。
tiitoi

2018/10/29 06:11 編集

OPENCV_DIR はそのままでよいです。 Path は変更箇所はそこだけですね。一応、Explorer で指定した場所が存在するか確認するとよいと思います。環境変数はアプリケーション起動時に読み込まれるので、変更後は CMake GUI や Visual Studio は一旦閉じて、起動し直す必要があります。 自分も 2017 でうまくいっているので、これでうまくいくといいのですが。。
hikaparo

2018/10/29 08:27

インストールが完了し、エラーもなくビルドが成功しています! 追記の2番について手順を思い出してとありますが、 Where is the source code: <sample フォルダのパス> Where to build the binaries: <sample フォルダのパス>\build の指定をして、Cofigureが完了したらそのままGenerateでよいのでしょうか?
hikaparo

2018/10/29 08:41

そのままやって、3番のCMakeもエラーなく完成させました! 使えるかどうか試すのは、どういった手順でやればよいのでしょうか? 新たにプロジェクトを生成するのでしょうか?
tiitoi

2018/10/29 08:51 編集

エラーなしということはいけそうですね! 3番は以下です。 <sample フォルダのパス>\build に生成された *.sln ファイルを Visual Studio で開く。 Visual Studio で Release モードにし、ソリューションエクスプローラーで sample を右クリックして、「スタートアッププロジェクトに設定」を選択 そしてビルドして、実行する。 これでどうでしょうか?
hikaparo

2019/01/21 10:29 編集

青い小さい窓が開きました・・・・。 本当に、ありがとうございます! これが終わりではなくパターン画像を生成したいのですが、 新しくプロジェクトを作成するのですか?
tiitoi

2018/10/29 09:05

お疲れ様です。 今のサンプルプログラムを書き換えて、続きを作ってもよいですし、新しくプロジェクトを作ってもよいです。 main.cpp に #include <opencv2/structured_light.hpp> とすれば、そのまま通ると思います。 CMake を使わない場合、インクルードディレクトリの設定やライブラリのリンクを Visual Studio のプロジェクト設定ページから手動で設定する必要があり、かなり面倒です。 新しくプロジェクトを作る場合は今 sample プログラムを作ったように CMake を使ってプロジェクトを作ることをおすすめします。
hikaparo

2018/10/29 09:14

わかりました!ありがとうございました! 環境は構築されましたが、画像を作るプログラムがわからないですがちょっと検索してみたりします。 また質問した場合は、よろしくお願いします!
guest

0

一部分しかエラーを載せきれていませんがこういうのが発生しています。
イメージ説明
イメージ説明

投稿2018/10/29 05:20

hikaparo

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問