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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

OpenCV

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

3734閲覧

OpenCVの導入法による違い

yu340102

総合スコア29

CMake

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

OpenCV

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2017/05/09 10:11

編集2017/05/09 10:12

OpenCVのカスケードファイルを用いて人物検出に関する研究を行っている学生から質問です.

去年,研究室に配属された際に,先輩からNuGetを用いたOpenCV導入法を教わり,使用してきました.
年度が変わり,新しいPCで初期設定を行ううちにOpenCVの導入法はNuGetを用いる方法の他に,
・公式インストーラを用いる方法
・CMakeを用いる方法
があることを知りました.

しかし,調べていてもそれぞれのメリット・デメリットがいまいち分かりません.
・NuGet
・公式インストーラ
・CMake
それぞれのメリット・デメリットを教えてほしいです.

一番動作が軽いものを使いたいと考えています.
また,CMakeについては今回調べて初めて聞いたものでまだいまいちピンと来ていない状態です.

回答よろしくお願いします!

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

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

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

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

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

guest

回答3

0

ベストアンサー

CMakeについては今回調べて初めて聞いたものでまだいまいちピンと来ていない状態です.

OpenCVを便利な道具として使うだけであれば、あなたの開発環境で手軽に導入できるものを選べば良いでしょう。その点ではNuGet版が最もお手軽です。おすすめ。

一番動作が軽いものを使いたいと考えています.

OpenCVバージョンが同じであれば、動作性能に違いはありません。お好きなものをどうぞ。


それぞれのメリット・デメリットを教えてほしいです.

  • NuGet:Visual Studio開発環境であれば、最も導入がお手軽です。
  • 公式インストーラ:何らかの理由でNuGetを使えない環境では便利です。
  • CMake:OpenCVライブラリはさまざまな オプション機能 を提供しており、自前ビルドにより柔軟にオプション機能を有効化できます。

NuGet版と公式インストーラ版ではビルド済みバイナリ配布ですから、OpenCVライブラリが本来持っているオプション機能を全て利用することができません。

投稿2017/05/10 06:36

yohhoy

総合スコア6191

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

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

0

CMakeがいいと思います。
理由としてはOpenCVの内部でエラーが発生した場合にシンボルとソースが手元にあるのでデバッグしやすいです。

投稿2017/05/10 01:03

hmmm

総合スコア818

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

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

yu340102

2017/05/10 06:08

初心者の中の初心者なのでシンボルが何を指すのか分かりません. 良ければ教えて欲しいです.
hmmm

2017/05/11 00:35

@koba830 シンボルとはデバッグ用に使用出来る情報ファイル(拡張子はpdb)です。例えば、Visual Studioからデバッグ実行しているときにOpenCVの中でエラーが発生した場合、シンボル情報を使用してOpenCV内のソースコードの該当箇所を表示できたりします。
guest

0

こんにちは。

OpenCVの環境構築(OpenCV 3.0/3.1)にざっくり書かれています。

しかし、できれば全てご自身でやってみてそれぞれの使い心地を体感されると有用と思います。
特にCMakeを使う方法では自分でOpenCVをビルドしますので、OpenCVの細かい動作を見る時などにOpenCVそのものに手をいれる事ができるようになります。かなり力が付きますよ。

投稿2017/05/09 13:55

Chironian

総合スコア23272

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

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

yu340102

2017/05/10 06:15

細かい動作とは??みたいな状況なので,CMakeを選択して良さを体感できるか不安です. 加えて,去年までvs2013を使用していたのですが,2015,2017が登場していることを知り,新しいものの方が良いのだろうと思い移行を考えているのですが,そちらも13→15or17に変えた場合に特に何が変わるのか教えていただけたら幸いです.
Chironian

2017/05/10 06:52 編集

CMakeを使うのが「良い」という意味ではないです。自力でOpenCVをビルドできると力がつきますよって話です。それなりにたいへんなのは事実です。プログラミング・スキルを育てることに興味がないのでしたら、NuGetを使う方法が一番手っ取り早いと思います。画像処理アルゴリズムの学習に注力できると思います。 Visual C++のバージョンの差異の件です。 Visual C++ 2015はC++11規格(https://ja.wikipedia.org/wiki/C%2B%2B11)にかなり良く対応していますので、それなりにC++を勉強する必要はありますが、プログラミングが楽になります。 リリースノート(https://www.visualstudio.com/ja-jp/news/releasenotes/vs2017-relnotes)によると「Visual C++ - 2015 と 2017 の間に重大な変更はありません。」だそうです。 他に、2017はそれ自身のインストールが早いので嬉しいですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問