ぴぐノート

Good code is its own best documentation.

C/C++ OpenCV

【OpenCV】OpenCVをビルドして画像処理をしてみよう!

投稿日:2017年7月13日 更新日:

今日はOpenCVを使って画像表示をしてみたいと思います。
ツールやアプリケーションを作る場合、多かれ少なかれ画像処理は必要になってくるのではないでしょうか。
また画像処理関係ではまると泥沼化する場合もあり、作業が大分停滞してしまうことがあります…。

画像処理をメインとしたアプリケーションでないのに、画像処理で躓くのは精神的にも良くないです。
そこで楽をするために!既存のライブラリの中でも画像処理といえばOpenCV!
実際に使ってみて操作に慣れていきたいと思います!

どのバージョンを使うのかよく検討しよう!

OpenCVについて調べると、2.x系と3.x系の記事に分かれていることが多いです。
私もOpenCVを使うに当たって、初めに3.2、次に3.1、続いて3.0、最終的には2.4.13.2で落ち着きました。

初めは新しいっぽい3.x系でと考えて、コンソールアプリケーションで動作確認、問題ないことを確認したのですがMFCアプリケーション上で使用しようとするといくつかの関数が未解決であるとエラーが発生してしまい、問題の発生しなかった2.4.13.2に落ち着く形となりました。

ということで、本記事で紹介する内容も2.4.13.2を使ったアプリケーションの作成になります。
ビルドの方法などは大きく変わらないと思うので、3.x系を使ってみたい!という方も一度確認されてみるといいかもしれませんネ。(私の思い違いで操作が異なってただけかもしれませんし…;;)

OpenCV 2.4.13.2のソースコードを取得しよう!

さて、まずはソースコードを入手しましょう!

  1. OpenCV libraryにアクセス
  2. 上部メニューの[RELEASES]をクリック、目的のバージョン、[Win pack]をクリックします。
    リンクをクリックするとすぐにダウンロードが始まります。
  3. ダウンロードした、「opencv-2.4.13.2-vc14.exe」を実行します。
    この実行ファイルは指定のフォルダーにOpenCVのファイルを解凍・出力します。
    指定フォルダーにopencvフォルダーを作成してくれるので、C:\opencvを作って、そこに解凍するとC:\opencv\opencvなんてフォルダ構成になるので気にする人は要注意ですヨ!
  4. しばらく待つと指定したフォルダーにopencvフォルダーが作成されます。

ファイル名から察した方もいるかもしれませんが、Visual Studio 2015(vc14)用のライブラリファイルとインクルードファイルは解凍後のフォルダーにすでに作成されています。

インクルードファイル 指定フォルダー\opencv\build\include
ライブラリファイル 指定フォルダー\opencv\build\x86(x64)\vc14\bin
指定フォルダー\opencv\build\x86(x64)\vc14\lib
静的ライブラリファイル 指定フォルダー\opencv\build\x86(x64)\vc14\staticlib

Visual Studio 2015で開発予定であれば、次のビルドなどは不要で利用できるかもしれませんネ。

開発環境に合わせてビルドしよう!

さて、私はVisual Studio 2017で開発を行う予定なので、上記ファイルでは適しません。
そのため入手したソースコードを開発環境に合わせてビルドする必要があります。

そこで必要になるのがビルド用のソリューションファイルを作ってくれるツール「CMake」です。
CMakeもさくっとインストールしてしまいましょう!

  1. CMakeへアクセス。
  2. 上部メニューより[Download]をクリック。
  3. Downloadページから、プラットフォームに合わせてインストーラーを入手します。
    今回は「cmake-3.9.0-rc5-win64-x64.msi」をダウンロードします。
  4. ダウンロードした「cmake-3.9.0-rc5-win64-x64.msi」を実行します。
  5. 基本的には画面に従って進めていきます。
    使用許諾契約 → 「I accept the terms in the License Agreement」
    次のインストールオプションはお好みです。
    私は環境変数を汚されるのは好きではないので今回はお断りしておきます
    「Do not add CMake to the system PATH」
    またデスクトップアイコンも不要なので、
    「Create CMake Desktop Icon」は未チェックで進めます。

    インストールフォルダーを指定して、「Install」ボタンをクリックし、インストール開始です。

これでCMakeのインストールは完了しました。
では続いて、OpenCVのビルドを開始しましょう!

OpenCVのビルドを実行しよう!

  1. 早速インストールしたCMakeを起動します。
    スタートメニューに「CMake(cmake-gui)」が追加されていると思うのでクリックして起動します。
  2. 次にOpenCVのソースフォルダーと、ビルド用のソリューションファイルを出力するフォルダーを指定します。
    OpenCVの解凍先に合わせて設定します。
    「Where is the source code」に「OpenCV解凍フォルダー\opencv\source」
    「Where is build the binaries」に任意のフォルダーを指定します。
  3. 画面下部の「Configure」をクリックするとビルドを行うコンパイラの設定画面が表示されます。
    ここで今回のビルド環境、Visual Studio 2017を指定します。
  4. 「Finish」を押下すると設定の反映が走ります。
    ウィンドウ下部に「Configuring done」と表示されたら、環境に合わせて設定を変更します。
    …といっても殆どよく分かりません!
    他の複数のサイトでは、「WITH_CUDA」のチェックを外している方が多かったので先人に倣うことにします!
  5. もう一度、「Configure」をクリックすると設定が反映され、赤く表示されていた部分が白く変更されます。
  6. 「Generate」ボタンを押下するとビルド用のプロジェクトファイルが作成されます。
    「Where to build the binaries」に指定したフォルダーにVisual Studioのソリューションファイルが作成されていることが確認できると思います。
  7. では、ソリューションファイル「OpenCV.sln」をダブルクリックしてVisual Studioを起動します。
  8. ソリューションエクスプローラー内にある、「INSTALL」プロジェクトを右クリックし、「スタートアップ プロジェクトに設定」をクリックします。
  9. そしていよいよビルドです。
    Debug版、Release版両方でビルドを実行します。
  10. できた!
    ソリューションファイルが作成されたフォルダー内のinstallフォルダーにライブラリファイルが作成されました。

まとめ

ライブラリファイルを使ってサンプルプログラムまで実行したいところでしたが少し記事が長くなってしまったので、次回ライブラリを使ってサンプルプログラムを作ってみましょう!

 

スポンサーリンク

スポンサーリンク

-C/C++, OpenCV

執筆者:

関連記事

C++のプリプロセッサの復習をしよう その1

C++を勉強していた時期から苦手だったのがプリプロセッサでした。 インクルートガードに#ifndefやら#defineやら#pragma onceやら…。 C++に限った話ではありませんが …

C++でインターフェイスを作成しよう。

私事ですが今後業務ではC++を使用することになりそうです。 今まではウェブ関連の業務であったり、ちょっとしたテスト程度だったのでJavaを中心に使っていたため、C++の文法など少し忘れ気味です&#82 …

C++のプリプロセッサの復習をしよう その2 【#defineの活用】

前回に引き続き、C++のプリプロセッサの復習です。 前回は#includeと#defineについて記事にしましたが、【まとめ】にも記載の通り、#defineと関連するプリプロセッサは多くあります。 今 …

【MFC】フォルダー選択ダイアログの表示【Visual C++】

出力先の指定などフォルダー選択のダイアログを表示させたいことがあります。 フォルダー選択ダイアログを表示させるためには、SHBrowseForFolder関数を使います。 SHBrowseForFol …

【Boost】boost::property_treeでXMLファイルを書き込もう!

前回の記事でXMLファイルの書き込みは難しくなくできそうでしたネ。 今回はXMLファイルの書き込みを行い、出力してみましょう。 読み込みと同じくライブラリファイルは不要で、ヘッダーファイルのみで利用で …