【OpenCV2.3】サンプルプログラム(C言語版)

OpenCV2.3においても、プログラムの作成方法はOpenCV2.2の時とさほど変わりません。

 

ここでは、OpenCV2.3の入手、ダウンロード、インストール、環境設定で紹介している方法でインストールした場合を想定しています。

 

基本的なC言語のプロジェクトファイルの作成方法については

【OpenCV2.2】新規プロジェクトの作成方法(C言語版)

のページを参照して下さい。

このページと異なるのはヘッダファイル(インクルードファイル)のディレクトリの設定方法のみです。

設定方法は

プロジェクトのプロパティで構成プロパティ⇒C/C++⇒全般の追加のインクルードディレクトリに

C:\OpenCV2.3\include

を指定します。

 

簡単なサンプルプログラムは以下の通りです。

// OpenCV23-C-Sample.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"

//プロジェクトのプロパティ⇒C/C++⇒全般 の追加のインクルードディレクトリに
// 『C:\OpenCV2.3\include』を追加のこと
#include "opencv2\\opencv.hpp"
 
#ifdef _DEBUG
    //Debugモードの場合
    #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_core230d.lib")
    #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_imgproc230d.lib")
    #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_highgui230d.lib")
#else
    //Releaseモードの場合
    #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_core230.lib")
    #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_imgproc230.lib")
    #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_highgui230.lib")
#endif

int _tmain(int argc, _TCHAR* argv[])
{

    //画像データの読込
    IplImage* src_img = cvLoadImage("C:\\OpenCV2.3\\samples\\c\\lena.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
    if (src_img == NULL){
        return 0;
    }
 
    //表示ウィンドウの作成
    cvNamedWindow("src");
    cvNamedWindow("dst");
 
    //処理後画像データの確保
    IplImage* dst_img = cvCreateImage(cvGetSize(src_img), src_img->depth, src_img->nChannels);
 
    //画像処理例(ガウシアンフィルタ)
    cvSmooth(src_img, dst_img, CV_GAUSSIAN, 9);
 
    //画像の表示
    cvShowImage ("src", src_img);
    cvShowImage ("dst", dst_img);
 
    //キー入力待ち
    cvWaitKey (0);
 
    //全てのウィンドウの削除
    cvDestroyAllWindows();
 
    //画像データの解放
    cvReleaseImage(&src_img);
    cvReleaseImage(&dst_img);
 
	return 0;
}

サンプルプログラムのダウンロードはこちらより
OpenCV23-C-Sample.zip (Visual Studio 2010 C++ Expressで作成しています。)

 

実行例


OpenCVへ戻る

 

OpenCV2.3の入手、ダウンロード、インストール、環境設定

2012.5現在、OpenCVの最新バージョンはVer2.4です。
こちらのインストール方法についてはOpenCV2.4の入手、ダウンロード、インストール、環境設定を参照願います。


OpenCV2.3は、一時、製品候補版のOpenCV2.3.0rcとして公開されましたが、現在ではrcの取れたOpenCV2.3.0となりました。

 

主な変更点

2.2から2.3への変更点はOpenCVのこのページで確認できます。

2.3rcおよび2.3の部分をご確認ください。

http://opencv.willowgarage.com/wiki/OpenCV%20Change%20Logs


OpenCV2.3の入手、ダウンロード先

OpenCVの入手は下記ページよりダウンロードして下さい。

(Windows版)

http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.3/

(Unix版)

http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3/



 

上図はWindows版の物ですが、内容は以下の通り。
 

  • OpenCV-2.3.0-win-superpack.exe
    コンパイルされたOpenCVのライブラリファイル(*.dll、*.lib、*.h)が32bit、64bit、
    Visual Studio 2008用、2010用など各環境に合わせたファイルが用意されています。
    このファイルは従来のようにOpenCVのインストーラではなく、ただの自己解凍ファイルで
    あるため、自分でPATHの設定などを行う必要があります。
  • OpenCV-2.3.0rc-gpu-support-win32-vs2008.zip
    Windows 32bit版、Visual Studio 2008、GPU対応のコンパイル済みライブラリ?
    (未評価です。)
  • OpenCV-2.3.0rc-win-src.zip
    Cmakeというソフトを使って、自分でOpenCVをコンパイルするにはこのファイルを用います。
    CUDA4.0やOpenNI、IPPへの対応など、きめの細かい設定が可能となります。

 
必要に合わせて上記の中からファイルをダウンロードして下さい。
OpenCVを使うのが初めての方はコンパイル済みのファイル(*.exe)の使用をオススメします。

以下、次の順序でOpenCVのインストール方法を説明したいと思います。
 

コンパイル済みOpenCVを使う方法

自分でOpenCVをコンパイルする方法

OpenCVの環境変数の設定方法

 

コンパイル済みファイル(OpenCV-2.3.0-win-superpack.exe)を用いたインストール方法

ダウンロードしたファイル(OpenCV-2.3.0-win-superpack.exe)をダブルクリックします。
このファイルはただの自己解凍ファイルなので、好きなフォルダへコピーして下さい。

 

ファイルを解凍すると、下記のような構成になっています。

\OpenCV2.3
┣ build
┃  ┣ bin
┃  ┣ include
┃  ┃  ┣ opencv
┃  ┃  ┣ opencv2
┃  ┃  ┃  ┣ calib3d
┃  ┃  ┃  ┣ contrib
┃  ┃  ┃  ┣ core
┃  ┃  ┃  ┣ :
┃  ┃  ┃  ┗ opencv.hpp
┃  ┃  ┗ CMakeLists.txt
┃  ┣ Python
┃  ┣ x64
┃  ┃  ┣ mingw
┃  ┃  ┣ vc9
┃  ┃  ┃  ┣ bin
┃  ┃  ┃  ┃  ┣ opencv_calib3d230.dll
┃  ┃  ┃  ┃  ┣ opencv_calib3d230d.dll
┃  ┃  ┃  ┃  ┣ opencv_contrib230.dll
┃  ┃  ┃  ┃  ┣    :
┃  ┃  ┃  ┣ lib
┃  ┃  ┃  ┃  ┣ opencv_calib3d230.lib
┃  ┃  ┃  ┃  ┣ opencv_calib3d230d.lib
┃  ┃  ┃  ┃  ┣ opencv_contrib230.lib
┃  ┃  ┃  ┃  ┣    :
┃  ┃  ┃  ┗ staticlib
┃  ┃  ┃       ┣ opencv_calib3d230.lib
┃  ┃  ┃       ┣ opencv_calib3d230d.lib
┃  ┃  ┃       ┣ opencv_contrib230.lib
┃  ┃  ┃  ┃  ┣    :
┃  ┃  ┗ vc10
┃  ┃  ┃  ┣ bin
┃  ┃  ┃  ┃  ┣ opencv_calib3d230.dll
┃  ┃  ┃  ┃  ┣ opencv_calib3d230d.dll
┃  ┃  ┃  ┃  ┣ opencv_contrib230.dll
┃  ┃  ┃  ┃  ┣    :
┃  ┃  ┃  ┣ lib
┃  ┃  ┃  ┃  ┣ opencv_calib3d230.lib
┃  ┃  ┃  ┃  ┣ opencv_calib3d230d.lib
┃  ┃  ┃  ┃  ┣ opencv_contrib230.lib
┃  ┃  ┃  ┃  ┣    :
┃  ┃  ┃  ┗ staticlib
┃  ┃  ┃       ┣ opencv_calib3d230.lib
┃  ┃  ┃       ┣ opencv_calib3d230d.lib
┃  ┃  ┃       ┣ opencv_contrib230.lib
┃  ┃  ┃       ┣    :
┃  ┗ x86
┃  ┃  ┣ mingw
┃  ┃  ┣ vc9
┃  ┃  ┃  ┣ bin
┃  ┃  ┃  ┃  ┣ opencv_calib3d230.dll
┃  ┃  ┃  ┃  ┣ opencv_calib3d230d.dll
┃  ┃  ┃  ┃  ┣ opencv_contrib230.dll
┃  ┃  ┃  ┃  ┣    :
┃  ┃  ┃  ┣ lib
┃  ┃  ┃  ┃  ┣ opencv_calib3d230.lib
┃  ┃  ┃  ┃  ┣ opencv_calib3d230d.lib
┃  ┃  ┃  ┃  ┣ opencv_contrib230.lib
┃  ┃  ┃  ┃  ┣    :
┃  ┃  ┃  ┗ staticlib
┃  ┃  ┃       ┣ opencv_calib3d230.lib
┃  ┃  ┃       ┣ opencv_calib3d230d.lib
┃  ┃  ┃       ┣ opencv_contrib230.lib
┃  ┃  ┃       ┣    :
┃  ┃  ┗ vc10
┃  ┃  ┃  ┣ bin
┃  ┃  ┃  ┃  ┣ opencv_calib3d230.dll
┃  ┃  ┃  ┃  ┣ opencv_calib3d230d.dll
┃  ┃  ┃  ┃  ┣ opencv_contrib230.dll
┃  ┃  ┃  ┃  ┣    :
┃  ┃  ┃  ┣ lib
┃  ┃  ┃  ┃  ┣ opencv_calib3d230.lib
┃  ┃  ┃  ┃  ┣ opencv_calib3d230d.lib
┃  ┃  ┃  ┃  ┣ opencv_contrib230.lib
┃  ┃  ┃  ┃  ┣    :
┃  ┃  ┃  ┗ staticlib
┃  ┃  ┃       ┣ opencv_calib3d230.lib
┃  ┃  ┃       ┣ opencv_calib3d230d.lib
┃  ┃  ┃       ┣ opencv_contrib230.lib
┃  ┃  ┃       ┣    :
┣ opencv
┃  ┣ 3rdparty
┃  ┣ android
┃  ┣ data
┃  ┣    :
readme.txt

主に関係しそうなファイルは赤く表示しておきました。
より詳細な情報はreadme.txtファイルを参照下さい。

 

解凍したファイルは、このままの構成で使うも良し、従来のようにc:\OpenCV2.3というようなフォルダを作って、その中へコピーするも良し、この辺は好みですが、自分でPATHの設定(*.dllファイルのあるフォルダの設定)を行って下さい。

 

ちょっと興味を引かれたのはstaticlicが用意されている事でしょうか?


CMakeを使ったOpenCV2.3のビルド方法

◆事前準備

今回のバージョンはCUDA4.0やOpenNIに対応している事もあり、OpenCVからこれらを使いたい場合は先にインストールしておいて下さい。(必要ない場合はインストールしなくても構いません)

 

これらのインストールについては、下記ページを参照下さい。

 

CUDA4.0

CUDA4.0の入手、インストール方法

 

OpenNI

Kinect1 -OpenNI導入-
(UnaNancyOwenさんのブログ)
※私はWindows7の64bit版を使っていますが、64bit版のOpenNIのインストールに失敗したため、32bit版を用いました。

 

◆CMakeのダウンロード、インストール

CMakeというソフトを使って、OpenCVのソースコードからVisual Studio用のソリューションファイル(*.sln)を作成します。

 

CMakeは下記ページよりダウンロードします。

 

http://www.cmake.org/cmake/resources/software.html

 

2011.6.28現在、CMakeの最新版は2.8.4になります。

 

上記リンクより、Windows (Win32 Installer)(cmake-2.8.4-win32-x86.exe)をダウンロードします。64bitOSでも、上記のファイルで大丈夫です。

 

CMakeのインストールは、表示されたウィンドウのデフォルト設定で、次へ次へで大丈夫です。

 

◆OpenCVをソースコードからビルドする方法

最初に紹介したOpenCVの入手先よりOpenCV-2.3.0rc-win-src.zipをダウンロードし、ファイルを解凍します。

 

ファイルを解凍すると、\OpenCV-2.3.0rc-win-src\OpenCV-2.3.0\・・・ というようなフォルダ構成となっていますが、旧バージョンやコンパイル済みの構成と合わせるため、今回は

 

c:\OpenCV2.3

 

というフォルダを作成し、解凍したファイルの\OpenCV-2.3.0内のファイルを上記フォルダへ移動します。

 

c:\OpenCV2.3
┣3rdparty
┣android
┣data
・・・

 

というようにします。
次に、先ほどインストールしたCMakeを起動し、

 

Where is the source code: に  c:\OpenCV2.3
Where to buid the binaries: に c:\OpenCV2.3

 

を指定します。

 

 

次に左下の Configure ボタンをクリックします。

 

 

すると、ソリューションファイルを作成するVisual Studioのバージョン選択ウィンドウが表示されるので、使用しているVisual Studioをバージョンを指定して下さい。(おそらくVisual Studio2008以降推奨?)

 

しばらくすると、このように表示されます。

 

 

ここで、CUDAやOpenCVなどを使うかどうかを設定します。他にもIPPTBBの設定ができます。

 

CUDAを使う場合は WITH_CUDA にチェック
(CUDAを使わない場合、CUDAに対応していない場合はチェックを外して下さい。)

 

OpenNIを使う場合は WITH_OPENNI にチェック


 

使用するオプションを選択したら、再度、Configureボタンをクリックします。

 

 

すると、部分的に赤く表示される場合があります。

 

これは、パスなどの設定が間違っているためで、その部分の設定を行います。

 

OpenNI(32bit版)をデフォルト設定でWindows7 64bitにインストールした場合は以下のように設定します。

 

OPENNI_INCLUDE_DIR C:\Program Files(x86)\OpenNI\Include
OPENNI_LIB_DIR C:\Program Files(x86)\OpenNI\Lib
OPENNI_PRIME_SENSOR_MODULE_BIN_DIR C:\Program Files(x86)\PrimeSense\SensorKinect\Bin

 

 

ここで、Configureボタンをクリックします。

 

 

ここで、赤い部分が表示されていなければ、CMakeの設定は合っています。

 

赤い表示がある場合は、再度、設定を行って下さい。

 

さらに、Configureボタンをクリックします。

 

 

すると、Generateボタンを有効になるので、Generateボタンをクリックします。

 

これでようやくWhere to buid the binaries:で指定したフォルダ(c:\OpenCV2.3)にOpenCVのソリューションファイル

 

OpenCV.sln

 

が作成されます。

 

次に上記のソリューションファイル(OpenCV.sln)をダブルクリックし、Visual Studioを起動します。

 

起動後、Visual Studioのメニューのビルド構成マネージャINSTALLの部分にチェックを入れて下さい。(Debug/Releaseとも

 

 

設定を行ったら、閉じるボタンでウィンドウを閉じ、メニューのビルドソリューションのビルドでOpenCVのビルドを行います。

 

OpenCVのビルドには時間がかかりますが、Debug/Releaseともにビルドを行って下さい。

 

これでようやくOpenCVで必要なdll、lib、hファイルが C:\OpenCV2.3\install 内に作成されています。

 

そして、好みにもよりもますが、互換性も考慮して以下のように移動します。

 

C:\OpenCV2.3\install\bin内のファイルをC:\OpenCV2.3\bin内へ
C:\OpenCV2.3\install\include\opencv2内のファイルをC:\OpenCV2.3\include\opencv2内へ
C:\OpenCV2.3\install\lib内のファイルをC:\OpenCV2.3\lib内へ

 

移動します。

 

次にOpenCVのdllファイルを使えるように環境変数のPATHというのを設定します。

 

OpenCVの環境変数の設定

次にOpenCVのプログラムからライブラリ(*.dllファイル)を参照できるように環境変数の設定(Pathの登録)を行います。

 

Windowsのスタートボタンをクリック → コンピュータ右クリックプ ロパティをクリックします。

 

 

開いたウィンドウの システムの詳細設定 をク リックします。

 

 

次に詳細設定タブの環境変数のボ タンをクリックします。

 

 

次にシステム環境変数のPathを選択し、編集をクリックします。

 

 

変数値のテキストボックスの最後の部分に、OpenCVのdllファイルのあるフォルダを指定します。

 

;c:\OpenCV2.3\bin

 

※もともとあった文字は消さないようにご注意ください。
最初の ; (セミコロン)を付けるのもお忘れなく。
PATHの設定後、念のためPCを再起動して下さい。

 

以上で、OpenCVのインストールは完了です。

 

 
別途、簡単なサンプルサンプルプログラムを
https://imagingsolution.net/program/opencv/opencv2-3/c-sample-program/
のページにまとめました。
ただし、OpenCVを配置したフォルダが異なる場合は、適宜、フォルダ設定を変更して下さい。
 

 

OpenCVへ戻る

 

OpenCV2.3rcが公開されました

2011.6.22の0時ごろ、OpenCV2.3rcが公開されました。

 

本当はOpenCV2.3の正式版が公開される事を期待していたのですが、rc(release candidate)の付いた製品候補版。OpenCV1.1pre1の時のように、いつこのRCが取れるのかは微妙ですが、今、私も含めてOpenCVの好きな人たちは人柱状態で評価しているところだと思います。

 

これまでOpenCVを使った事の無い人は、まだOpenCV2.3rcの情報も少ないし、いつRCが取れるかも?分からないので、まだ、使わない方が無難だと思います。

 

主な変更点

変更点についてはOpenCVの本家のページ

http://opencv.willowgarage.com/wiki/OpenCV%20Change%20Logs

にて確認できます。

日本語がよければOpenCV.jpにて

http://opencv.jp/opencv2-x-tips/changelog_from_22

 

変更内容で個人的に気になったのは

  • CUDA4.0以降への対応
  • OpenNIの対応
  • opencv_stitchingというサンプル?

 

まだ、私もやっとインストールしたばかりなので、詳細は不明ですが、ある程度落ち着いたら記事にしたいと思います。

 

OpenCV2.3rcの入手先

OpenCVの入手先はこれまで、sourceforgeのOpenCVのトップページ

 

http://sourceforge.net/projects/opencvlibrary/

 

をリンクしていましたが、すぐにこの記事が古くなってしまうので、今回はOpenCV2.3へのダイレクトリンクも載せておきます。

 

(Windows版)

http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.3/

(Unix版)

http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3/

 

※Windowsの64bit版のOSでは

OpenCV-2.3.0rc-win32-vs2008.exe
OpenCV-2.3.0rc-win64-vs2010.exe

を使うとインストールに失敗するようです。

 

そのため、現状では OpenCV-2.3.0rc-win-src.zip を用いCMakeを使って、自前でビルドする必要があります。

 

旧バージョンのダウンロード

sourceforgeのOpenCVのトップページのいつもの緑のボタンもOpenCV-2.3.0rc-win-src.zipファイルへのリンクになってしまったので、古いOpenCV2.2などがダウンロードできなくなってしまった?と思われる方もいらっしゃると思いますが、過去のバージョンも全て公開されています。

(Windows版)

http://sourceforge.net/projects/opencvlibrary/files/opencv-win/

(Unix版)

http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/

 

参考記事

OpenCV 2.0 入手、ダウンロード、インストール、環境設定

(CMakeの使い方など)