【OpenCV】バイラテラルフィルタ(cvSmooth,CV_BILATERAL)

OpenCVでバイラテラルフィルタを行う場合はcvSmooth関数の第3引数にCV_BILATERALを指定すればよいのですが、OpenCV.jpのページなどを見ても、なぜか、それらしい処理結果になっているサンプルをあまり見かけません。

 

cvSmoothの定義は

 

void cvSmooth(
         const CvArr* src,
         CvArr* dst,
         int smoothtype = CV_GAUSSIAN,
         int param1 = 3,
         int param2 = 0,
         double param3 = 0,
         double param4 = 0
);

 

で、バイラテラルフィルタの場合、

param1 アパーチャサイズ
param2 アパーチャサイズ
param3 空間領域のシグマ
param4 色領域のシグマ

 

ただし、

インプレースモード 非対応
チャンネル数 1,3
srcの深度 8
dstの深度 8

 

となっています。

 

そこで、param3、param4を変えながら、処理結果の比較をしてみました。

 

【入力画像】

 

【処理画像】

cvSmooth(src, dst, CV_BILATERAL, 11, 11, param3, param4);

(param3, param4) = (0, 0) (50, 0) (100, 0)
(0, 50) (50, 50) (100, 50)
 
(0, 100) (50, 100) (100, 100)

 

という事で、今回使用した画像では

cvSmooth(src, dst, CV_BILATERAL, 11, 11, 50, 100);

としたときが、いかにもバイラテラルフィルタっぽいでしょうか?

param4を少し大きめにした方が良さそうです。

逆にparam1, param2の値を大きくすると、処理時間がやたらとかかるので、あまり大きくできません。

 

OpenCVへ戻る

 

USBカメラ比較

最近フルHDサイズのUSBカメラ Logicool C910 (現行モデルはC920)を購入したのですが、このカメラを使ってOpenCV2.3.1で撮影すると、難なくキレイな画像が撮影できました。

(以前のバージョンのOpenCVでは画像サイズ4:3の縛りがあって、撮影できなかったのですが...)

 

このカメラの画像が想像以上にキレイだったので、手持ちのUSBカメラの画像比較してみました。

撮影条件は下の写真のようにほぼ同様の条件にしました。

 

今回比較に用いたUSBカメラは

  • BUFFALO BWC-30L01
  • Logicool Qcam Fusion
  • Logicool C910

の3つ。

 

それぞれカメラの最大画素数で撮影してみました。(写真をクリックすると等倍で表示されます。)

 

  • BUFFALO BWC-30L01  (640×480)

 

  • Logicool Qcam Fusion (1280×960)

 

  • Logicool C910 (2592×1944)
    ※投稿できるファイル容量の限界を超えたため、jpgファイルで公開しています。

 

これまでUSBカメラでの画像を本気で画像処理に使う気はしなかったのですが、ここまでキレイだと、そこそこイケちゃうかも?

 

 

 

OpenCV-2.3.2-GPU-demo-pack-win32を試す

久々の投稿ですがSourceforgのOpenCVのページにGPUデモのプログラムが公開されていました。

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

 

バージョンもOpenCV2.3.2 って、まだ公開されていないのに...

 

で早速、このファイルをダウンロードし、試してみました。

私の環境は

OS:Windows7 64bit (ただし、サンプルは32bit動作)

CPU:Core i7 870 (2.93GHz)

GPU:NVIDIA GeForce GTX470

 

で、パフォーマンス評価用のサンプル(demo_performance.exe)を実行した時の結果がこちら↓

CPU msec   GPU msec   SPEEDUP   DESCRIPTION
matchTemplate
480 5 x86.5 src 3000, templ 5, 32F, CCORR
545 21 x24.9  src 3000, templ 25, 32F, CCORR
792 31 x25.4  src 3000, templ 5, 32F, CCORR
minMaxLoc
7  1  x4.81  src 2000, 32F, no mask
28  2  x14.3  src 4000, 32F, no mask
 106  3  x28.2  src 8000, 32F, no mask
 remap   
 8  0  x35.9  src 1000,8UC1
 30  0  x50.6  src 2000,8UC1
 124  2  x59.1  src 4000,8UC1
 12  0  x32.2  src 1000,8UC3
 42  1  x34.6  src 2000,8UC3
 164  4  x34.7  src 4000,8UC3
 11  0  x37.8  src 1000,8UC4
 40  0  x41.4  src 2000,8UC4
 156  3  x43.7  src 4000,8UC4
 29  0  x79.7  src 1000,16SC3
 117  1  x88.8  src 2000,16SC3
 481  4  x98.1  src 4000,16SC3
 dft   
 107  3  x29.2  size 1000, 32FC2, complex-to complex
 402 8  x45.3  size 2000, 32FC2, complex-to complex
 1781  32  x55.4  size 4000, 32FC2, complex-to complex
 cornerHarris
 129  19  x6.55  size 2000, 32F
 499  70  x7.06  size 4000, 32F
 integral
28 15 x1.82  size 4000, 8U
20 9 x2.04  size 4000, 8U
20 9 x2.11  size 4000, 8U
21 9 x2.2  size 4000, 8U
21 9 x2.15  size 4000, 8U
norm
139 5 x27.3 size 2000, 32FC4, NORM_INF
310 8 x35.2 size 3000, 32FC4, NORM_INF
555 14 x38.2 size 4000, 32FC4, NORM_INF
meanShift
304 8 x36.3  size 400, 8UC3 vs 8UC4
1187 29 x40.2  size 800, 8UC3 vs 8UC4
SURF
5179 117 x43.9
BruteForceMatcher
1230 8 x144 match
1257 9 x136 knnMatch, 2
1301 9 x139 knnMatch, 3
1220 9 x135 radiusMatch
magnitude
41 0 x86 size 2000
88 1 x85 size 3000
162 1 x95 size 4000
add
10 0 x20.1 size 2000, 32F
22 1 x21.4 size 3000, 32F
41 1 x23.9 size 4000, 32F
log
25 0 x55.8 size 2000, 32F
54 0 x66.1 size 3000, 32F
97 1 x71.3 size 4000, 32F
exp
25 0 x53 size 2000, 32F
58 0 x73.7 size 3000, 32F
10 1 x74.6 size 4000, 32F
mulSpectrums
24 0 x53 size 2000, 32F
58 0 x73.7 size 3000, 32F
101 1 x74.6 size 4000, 32F
resize
7 0 x33.5 size 1000, 8UC1, up
28 0 x50.4 size 2000, 8UC1, up
64 1 x53.3 size 3000, 8UC1, up
2 0 x26.6 size 1000, 8UC1, down
8 0 x51.6 size 2000, 8UC1, down
18 0 x94.6 size 3000, 8UC1, down
21 2 x8.5 size 1000, 8UC3, up
82 8 x10.2 size 2000, 8UC3, up
187 17 x10.9 size 3000, 8UC3, up
7 0 x13.8 size 1000, 8UC3, down
26 1 x23.8 size 2000, 8UC3, down
58 1 x32.7 size 3000, 8UC3, down
27 1 x17.1 size 1000, 8UC4, up
108 4 x26 size 2000, 8UC4, up
250 9 x27.5 size 3000, 8UC4, up
9 0 x14.6 size 1000, 8UC4, down
32 0 x37.4 size 1000, 8UC4, down
73 1 x52 size 1000, 8UC4, down
9 2 x4.72 size 1000, 32FC1, up
41 6 x6.25 size 2000, 32FC1, up
88 13 x6.45 size 3000, 32FC1, up
2 0 x4.92 size 1000, 32FC1, down
10 0 x12.1 size 2000, 32FC1, down
23 1 x17.2 size 3000, 32FC1, down
cvtColor
29 0 x37.1 size 4000, CV_GRAY2BGRA
82 1 x61.8 size 4000, CV_BGR2YCrCb
105 1 x71.3 size 4000, CV_YCrCb2BGR
123 1 x84.4 size 4000, CV_BGR2XYZ
116 1 x83.7 size 4000, CV_XYZ2BGR
195 2 x72.9 size 4000, CV_BGR2HSV
550 2 x189 size 4000, CV_HSV2BGR
erode 
9 3 x2.65 size 2000
22 7 x3.07 size 3000
39 11 x3.35 size 4000
threshold   
0 0  x1.62 size 1000, 8U, THRESH_BINARY
1 0  x6.15 size 2000, 8U, THRESH_BINARY
3 0  x11.1 size 3000, 8U, THRESH_BINARY
6 0  x11.4 size 4000, 8U, THRESH_BINARY
1 0  x7.49 size 1000, 32F, THRESH_BINARY
6 0  x18.8 size 2000, 32F, THRESH_BINARY
14 0  x19.6 size 3000, 32F, THRESH_BINARY
25 1  x21.9 size 4000, 32F, THRESH_BINARY
pow   
5 0 x32.9 size 1000, 32F
20 0 x57.1 size 2000, 32F
44 0 x58.2 size 3000, 32F
83 1 x55.8 size 4000, 32F
projectPoints
49 2 x23.3 size 1000000
37 2 x16.1 size 714285
26 1 x24.5 size510203
19 0 x20.9 size 364430
12 0 x21.6 size 230307
solvePnPRansac
217 118 x1.84 num_points 5000
392 120 x3.25 num_points 18800
1315 127 x10.3 num_points 70688
4984 160 x31 num_points 265786
GaussianBlur
1  0 x4.26 8UC1, size 1000
6  1 x5.61 8UC1, size 2000
14  2 x6.08 8UC1, size 3000
24  3 x6.36 8UC1, size 4000
5  0 x7.57 8UC4, size 1000
24  2 x10.2 8UC4, size 2000
56  4 x11.8 8UC4, size 3000
100  8 x11.7 8UC4, size 4000
2  0 x5.16 32FC1, size 1000
8  1 x7.39 32FC1, size 2000
17  2 x7.6 32FC1, size 3000
33  3 x8.63 32FC1, size 4000
pryDown
18 5 x3.55 8UC1, size 4000
10 2 x3.62 8UC1, size 3000
4 1 x3.41 8UC1, size 2000
1 0 x2.74 8UC1, size 1000
64 6 x9.52 8UC3, size 4000
38 3 x10 8UC3, size 3000
16 1 x9.26 8UC3, size 2000
4 0 x7.71 8UC3, size 1000
66 7 x8.98 8UC4, size 4000
38 4 x9.14 8UC4, size 3000
17 2 x6.36 8UC4, size 2000
4 0 x7.98 8UC4, size 1000
107 6 x15.6 16SC4, size 4000
60 3 x15.6 16SC4, size 3000
26 1 x14.9 16SC4, size 2000
7 0 x10.2 16SC4, size 1000
29 5 x5.7 32FC1, size 4000
17 3 x5.92 32FC1, size 3000
7 1 x5.65 32FC1, size 2000
1 0 x4.62 32FC1, size 1000
88 6 x13 32FC3, size 4000
52 3 x13.8 32FC3, size 3000
22 1 x12.7 32FC3, size 2000
5 0 x4.92 32FC3, size 1000
122 7 x17 32FC4, size 4000
67 4 x16.9 32FC4, size 3000
30 1 x16.6 32FC4, size 2000
7 0 x14.4 32FC4, size 1000
pyrUp
51 5 x8.97 8UC1, size 2000
12 1 x8.52 8UC1, size 1000
145 8 x17.3 8UC3, size 2000
36 2 x16.5 8UC3, size 1000
198 11 x17.6 8UC4, size 2000
48 2 x16.7 8UC4, size 1000
170 8 x19.6 16SC3, size 2000
44 2 x20.1 16SC3, size 1000
69 5 x12.2 32FC1, size 2000
17 1 x11.4 32FC1, size 1000
205 7 x27.3 32FC3, size 2000
21 1 x26.2 32FC3, size 1000
equalizeHist
2 1 x1.93 size 1000
10 2 x4.78 size 2000
23 3 x6.37 size 3000
Canny
29 3  x9.63
reduce
1 0 x7.79 size 1000, dim = 0
1 0 x10.1 size 1000, dim = 1
6 0 x14.5 size 2000, dim = 0
6 0 x25.2 size 2000, dim = 1
13 0 x17.5 size 3000, dim = 0
13 0 x29.3 size 3000, dim = 1

average GPU speedup: x29.202

 

sizeの表記は、size1000の場合、画像サイズは1000×1000となります。

 

一般的にGPUを使った画像処理ではメモリの転送時間がかかり処理時間トータルでは、あまり高速化されない

と言われる場合も多いので、ソースコードを見てみないと、いまいち結果をそのまま信用できない...

でも、とりあえずは、そこそこ速そうな結果でした

 

ソースコードは こちら

https://code.ros.org/trac/opencv/changeset/6950?utm_source=twitterfeed&utm_medium=twitter

 

OpenCVへ戻る

 

OpenCV2.3.1が公開されました。

OpenCV2.3.1のインストール方法については、別途記事にまとめました。
下記を参照願います。
OpenCV2.3.1の入手、ダウンロード、インストール、環境設定


 

本日(2011.8.18)、OpenCV 2.3.1が公開されました。

 

Android版の2.3.1のβ版は比較的前から公開されていましたが、今回はWindows版が公開されました。

 

ただし、OpenCV-2.3.1-win-superpack.exe のコンパイル済み版のみ?

と思っていたら、OpenCV-2.3.1-win-superpack.exeを解凍して出来たopencvというフォルダにソースコードが格納されているので、このフォルダをCMakeのsource codeフォルダに指定すればOKです。

 

入手先

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

変更内容

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

 

まだ、実際には触っていませんが、まずは報告まで。

 

インストール方法についてはVer2.3.0とフォルダ構成が若干異なりますが、『OpenCV-2.3.0-win-superpack.exe』を使うときとほぼ同じなので、下記、リンク先の記事を参照下さい。

libファイルの2.3.0の部分を2.3.1に読み替えて参照下さい。

 

(参考)

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

https://imagingsolution.net/program/opencv/opencv2-3/opencv2-3-downlaod-install/

CVKaleidoscope

今回はちょっと息抜き。

ネタ的には、よくある話なのですが、OpenCVのアフィン変換のおさらいも含めて、USBカメラを使った万華鏡ソフトを作ってみました。

 

USBカメラから取得した画像から、三角形領域を切り出し、回転、ミラー反転などを行って、万華鏡っぽくしています。

 

ファイルのダウンロードはこちら↓より

CVKaleidoscope230x86.zip

 

【開発環境】

●Visual Studio 2010 C++

●OpenCV2.3 x86 (32bit版)

 

上記の環境があれば、おそらく動作すると思います。

USBカメラは最初に見つけたカメラから640×480サイズで画像を取得しています。

 

【操作方法】

画像上で

Sキーで三角形の回転が開始/停止します。

その他のキーでプログラムが終了します。

 

作ってみると、思いの他、細かいバグにハマって苦労してしまいました...

 

【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の使い方など)

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

CUDAの動作環境

CUDAは2006年に発売されたGeForce8800GTX以降であれば動作するそうです。

詳細は以下のページにてご確認下さい。

http://developer.nvidia.com/cuda-gpus


CUDAのダウンロード

下記ページよりOSに合わせてファイルをダウンロードして下さい。

http://developer.nvidia.com/cuda-toolkit-40

CUDAを使うだけなら

  • Developer Drivers

だけで大丈夫と思われるのですが、とりあえず上記の他に下記ファイルもダウンロードしてみました。

  • CUDA Toolkit
  • CUDA Tool SDK
  • GPU Compution SDK code sample

 

上記のファイルを順にインストール後、デスクトップに作成されたアイコン

NVIDIA GPU Computing SDK 4.0 Browser

をダブルクリックし、表示されたサンプルプログラムも実行できたので、これでCUDA4.0はインストールされたと思われる。

 

下図は CUDA N-Body Simulation を実行した様子

 

これであとはOpenCV2.3を待つのみ?!

Kinect SDK Bitmapクラスを使ったC#サンプル

Kinect SDKには、最初からC#のサンプルプログラムはありますが、xamlファイルがあったりSystem.Windows.Mediaを使っていたり、いまいち慣れない書き方をしているので、なんとなく逆行するような気もしますが、SkeletalViewerのサンプルを慣れ親しんだBitmapクラスを使って書いてみました。

 

あちこち手を抜いていますが、サンプルは首ふり機能も追加して、こんな感じです。

 

 

サンプルプログラムはこちらです。

KinectSkeletalViewerCS.zip

動作させるにはKinect SDKがインストールされている事が必要です。

(Visual Studio 2010 C# Express版です。)

 

Kinect SDK + OpenCV2.2 サンプルプログラム作成

昨日公開されたKinect SDKですが、データをOpenCVに接続するサンプルを勉強がてら作ってみました。

 

やった事はKienct SDKのサンプルプログラム(SkeletalViewer)をベースに、画像表示部分のデータポインタをOpenCVのIplImageにコピーしています。

 

とりあえずこんな感じ↓

あ~~ 部屋が狭い、汚い、ボロイ。

 

もともとのサンプルでは、Playerの部分はDepthデータに合わせてカラーで表示しているのですが、この部分は別ウィンドウに分けました。

 

ご興味があればサンプルプログラムはこちら↓よりダウンロードできます。

 

KinectSDK_OpenCV22.zip

 

上記ファイルをダウンロード、解凍し、解凍したフォルダ(OpenCV)をKinectSDKのサンプルフォルダ

 

C:\Users\Public\Documents\Microsoft Research KinectSDK Samples\NUI\SkeletalViewer

 

に入れて下さい。(インクルードディレクトリ設定の都合上)

 

プログラムの終了は Skeletal Viewer のウィンドウの×ボタンで。

 

動作環境は

  • Kinect SDKが動作する事。
  • OpenCV2.2がインストールされている事。

です。

 

もう少しサンプルをスッキリさせたい気もしますが、もうすぐしたら、OpenCV2.3が公開されるでしょうから、ちょっと様子見で...


(2011.06.21追記)
と思ったら、kaorun55さんが、シンプルなソースコードを公開していました。
Kinect for Windows SDK beta で遊んでみた・その2(C++でOpenCV対応、OpenNIっぽく)
さすがですね。


 

ソースコードを見ていて気になったのが、深度データは16bitのバッファに格納されているのですが、16bit中の上位13bitが実際の深度データで、下位3bitにPlayerの番号が各画素ごとに割り振られていました。

 

また、深度データの解像度(320×240)を変えようと思ったのですが、出来ないのか???

(2011.06.21追記)

80×60にはできるらしい。ってデカくはできない!

Kinect SDKのダウンロード、インストール方法

2012.2.1 Kinect for Windows SDKはVer1.0になりました。

 

下記、記事はβ版のものです。

 

最新版のKinect SDKは下記ページより入手下さい。
http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx

 

また、Ver1.0に関する記事を追加しました。こちらも参照頂けると幸いです。
Kinect for Windows SDK C#サンプルプログラム

 


6月17日の深夜にマイクロソフトより Kinect for Windows SDK beta が公開されました。

 

Kinect SDKのメインページはこちら

http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/default.aspx

KinectSDKの動作環境は

  • Kinect センサー
  • デュアルコア2.66Ghz以上推奨
  • OS:Windows7(32bit、64bit)のみ
  • グラフィック DirectX9.0c が動作する環境
  • メモリ:2GB(4GB推奨)
  • Visual Studio 2010 (Expressで可)

 

Kinect SDKのダウンロード

下記ページより、PCの環境に合わせて、32bit版もしくは64bit版をダウンロードして下さい。

 


http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/download.aspx

Microsoft Speech Platform
Software Development Kit (SDK)のダウンロード

一部のサンプルプログラムでMicrosoft.Speech.dllが必要となります。

 

この入手は

 

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4&displaylang=en

 

より

 

x64\MicrosoftSpeechPlatformSDK.msi (64bit版)

もしくは

x86\MicrosoftSpeechPlatformSDK.msi (32bit版)

 

をお使いのPCに合わせてダウンロードして下さい。

 

インストールはファイル(MicrosoftSpeechPlatformSDK.msi)をダウンロード後、ファイルをダブルクリックし、インストールして下さい。

 

インストール後、必要なライブラリファイル(Microsoft.Speech.dll)は

 

C:\Program Files\Microsoft Speech Platform SDK\Assembly

 

に保存されています。

 

Kinect SDKのインストール

Kinect SDKのインストールはいたって簡単です。

 

ダウンロードしたファイル(KinectSDK64.msiなど)をダブルクリックし、NextをクリックしていけばOKです。

 

 

この時、環境変数のPATHが設定されるので、この設定を反映させるためにも、念のためKinect SDKをインストール後、PCを再起動した方が良いかも?しれません。

 

デフォルトでインストールした場合、インストール後の主なファイルは以下のフォルダに保存されています。

  • dllファイル、サンプルexeファイル
    C:\Program Files (x86)\Microsoft Research KinectSDK
  • libファイル
    C:\Program Files (x86)\Microsoft Research KinectSDK\lib
  • ヘッダファイル(*.h)
    C:\Program Files (x86)\Microsoft Research KinectSDK\inc
  • ヘルプファイル
    C:\Program Files (x86)\Microsoft Research KinectSDK\docs
  • サンプルプログラムソース
    C:\Users\Public\Documents\Microsoft Research KinectSDK Samples

 

サンプルプログラムの実行

Windowsのスタートメニュー⇒すべてのプログラム⇒Microsoft Kinect for Windows SDK BETAより

 

  • ShapeGame.exe
  • SkeletalViewer.exe

 

の2つのサンプルが用意されているので、実行してみて下さい。

上図はShapeGame.exeの画面

 

SkeletalViewer.exeでは深度画像、骨格データ、カラー画像が表示されますが、部屋が汚すぎて、画面はとても出せませんでした...

 

サンプルソースは下記フォルダ

C:\Users\Public\Documents\Microsoft Research KinectSDK Samples

 

に保存されています。

 

また、VB.NET 2010版のサンプルプログラムも下記のリンクより入手可能です。

http://files.ch9.ms/coding4fun/KinectSDKSamplesVB.zip

 

その他の情報についてはヘルプファイルや下記のページが参考になると思います。

http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/guides.aspx


USTREAM台形補正アプリ – UstHomography

最近は各地でコンピュータビジョンやらKinectやらの勉強会が開催され、Ustreamで勉強会の様子が生中継で公開されている事もよくあります。

 

これらの勉強会は非常に参考になる事は多いのですが、Ustreamで見ていると、気になるのが、PowerPointで表示しているスライドを下の方から撮影しているので、スライドが台形に歪んでほとんどです。

 

そんな台形歪みを補正する方法と言えば斜影変換

この変換もOpenCVを使えば簡単にできちゃいます。

ということで、ブラウザに表示しているUstreamの動画の歪みを補正するソフトを作ってみました。

 

ダウンロードはこちら↓から

UstHomography.zip

開発環境:Windows7、C++/CLI(VS2005、.NET FRamework2.0)、OpenCV2.2

※OpenCV2.2は別途インストールが必要です。
他の環境では動作確認していないので、動作しない場合はご了承願います。

 

使い方は、上記のファイルをダウンロード、解凍し、解凍したファイル(UstHomography.exe)をダブルクリックして実行します。

プログラムを実行すると、ウィンドウが2つ開き、赤い四角が表示されている部分を、台形に歪んでいる部分にマウス操作で合わせます。

すると、他方のウィンドウに台形が補正された画像が表示されます。

また、カラー⇒モノクロ変換、明度、コントラストの調整の機能を付けました。

 

ほんと、OpenCVを使うと、こんなソフトを作るのも簡単!

でも、あまり評価していないので、あしからず...

 

Windows7がシャットダウンしない場合

最近、私のWindows7マシンをシャットダウンする時に、シャットダウンしていますと表示されたまま、シャットダウンしない現象が多発し、しょうがないので、電源ボタンの長押しをして電源を落としていました。

 

シャットダウンしない原因を探してみると以下のような原因が考えられるとのこと。

 

①ビデオカードなどのドライバの不具合
②常駐ソフトによる問題(私の場合はこれが原因でした)
③ハードディスクの電源がOFFになっているため

 

など。
①に関しては、Windows Updateやドライバの更新などもやってみましたが、現象は変わらず

 

②は手間ですが、怪しい常駐ソフトを終了してみてシャットダウンして、シャットダウンすれば、そのアプリがかなり怪しいと思われます。

 

私の場合は、iPhoneを無線LANにつなぐために使っていたGW-USNano2-GというUSBタイプの無線LANの常駐ソフト(クライアント・マネージャ)をアンインストールしたところ、今のところシャットダウンしてくれるようになりました。

(せっかく買ったのに、使い物にならなくなってしまいました...)

 

③はハードディスクがシャットダウン時に電源がOFFになっているとシャットダウンできない場合があるとのこと。
試しにシャットダウンの前にエクスプローラで各ドライブをクリックしてドライブの内容を表示させ、ドライブをONにしてからシャットダウンを行った。これでシャットダウンしれくれる場合もありました。

 

ということで、私の場合は増設したハードディスクの電源がOFFになっていたため、Windows7がシャットダウンできなかったみたい。
そのため、電源管理の設定をいろいろ見てみたが、非アクティブなハードディスクの電源を切る時間設定はあるものの、常にオンのような設定が無い。

 

そこで、③の操作をC#でプログラム的に行い、最後にshutdown.exeを実行させるだけのプログラムを作ってみました。

 

シャットダウンしてくれない人は試してみては?
これ↓

 

ShutdownEx.zip

 

使い方は上記のファイルをダウンロード、解凍し、ファイル(ShutdownEx.exe)をデスクトップなど、どこでもいいのですが、ファイルを置いておき、シャットダウンしたい時に、このファイルをダブルクリックして実行します。

 

ただし、プログラム実行後、すぐにシャットダウン動作に入るので、実行する前に編集中のファイルを保存するなどして、ご注意下さい

 

プログラミングへ戻る

Windowsドライバの削除方法

Kinectなどで遊んでいると、OpenNIなど、いくつかのドライバ・ライブラリが出回っているため、使うソフトによって、ドライバを削除・インストールを行い切り替える必要があるのですが、ちょっとはまりやすいので、ドライバの削除方法について、まとめておきます。

 

注)ドライバの削除を誤ると、他のデバイスが動作しなくなる場合がありますので、ドライバの削除は十分注意のうえ、自己責任で行って下さい。

 

Windowsのドライバを削除する場合、スタートメニューよりコントロールパネル→デバイスマネージャーで削除するデバイスを右クリックして削除を行っても、デバイスマネージャーのメニューの操作→ハードウェア変更のスキャンをクリックすると削除したはずのドライバが元に戻ってしまいます。

 

 

そうならないようにするためにもドライバを完全に削除する方法を紹介します。

まず、削除するデバイスを選択し、右クリックしプロパティをクリックします。

 

 

次に表示されたウィンドウのドライバータブのドライバーの詳細をクリックします。

 

 

するとデバイスドライバが使用しているファイルが表示されているので、これらのファイルを削除します。

 

ちなみにKinect-v**-withsourceを使ってドライバをインストールした場合は以下の3つのファイルを削除します。
C:\Windows\System32\drivers\libusb0.sys
C:\Windows\System32\libusb0.dll
C:\Windows\SysWOW64\libusb0.dll
(ただし、削除したドライバが元に戻らなくするだけなら、これらのファイルを削除する必要はありません。
あくまで、完全にドライバを削除する場合)

 

次にC:\Windows\infのフォルダ内にある*.infファイルの中から、削除するデバイスが使用していると思われるファイルを見つけます。
infファイルをメモ帳などで開き、DeviceNameやSourceNameなどを参考にしながら対象のinfファイルを探し出します。

 

ちなみに、Kinect-v**-withsourceを使ってドライバをインストールした場合は、以下のように表示されている3つのファイルが相当します。

; Xbox_NUI_Motor.inf
; Copyright (c) 2010 libusb-win32 (GNU LGPL)
[Strings]
DeviceName = "Xbox NUI Motor"
VendorName = "Microsoft Corp."
SourceName = "Xbox NUI Motor Install Disk"
DeviceID   = "VID_045E&PID_02B0"
DeviceGUID = "{283E6E32-2356-4775-9D97-0B4EA8775D39}"
・・・

 

; Xbox_NUI_Camera.inf
; Copyright (c) 2010 libusb-win32 (GNU LGPL)
[Strings]
DeviceName = "Xbox NUI Camera"
VendorName = "Microsoft Corp."
SourceName = "Xbox NUI Camera Install Disk"
DeviceID   = "VID_045E&PID_02AE"
DeviceGUID = "{D3074D04-3130-4FF6-A71F-D810C5D59867}"
・・・

 

; Xbox_NUI_Audio.inf
; Copyright (c) 2010 libusb-win32 (GNU LGPL)
[Strings]
DeviceName = "Xbox NUI Audio"
VendorName = "Microsoft Corp."
SourceName = "Xbox NUI Audio Install Disk"
DeviceID   = "VID_045E&PID_02AD"
DeviceGUID = "{D4AF50D4-8548-420F-87E4-F3B9AE4F5918}"
・・・

 

*.infファイルはoem**.infというようなファイル名になっている場合が多いのですが、oem**.infファイル同じ名前のoem**.PNFファイルの2ファイルをセットで削除します。
Kinectの場合、Motor、Camera、Audio用のファイル3セット(*.infと*.PNF)、計6つのファイルを削除します。

そして最後に?(最後じゃなくてもいいかも?)、削除するデバイスを選択して右ボタンクリックで削除をクリックします。

これで、ハードウェア変更のスキャンを行っても、ドライバが元に戻る事は無くなるので、新たにドライバをインストールすることが可能となります。

 

 

Kinect参考書籍、KINECTセンサープログラミング

世界初と言われる、Kinectの参考書籍が発売されます。(5月24日発売予定)

 

 

この本の対象者はプログラム中級者としているようにKinectのプログラムは最低限のC言語、C++の知識が必要となります。

 

私も勢いでKinectを買ってみたものの、動作が拾えるまではいいのですが、その先、何をするか?が一番の問題。

 

目次

OpenNIおよびSensorモジュールのライセンス
OpenCVのライセンス
1. Kinect入門

1.1. KinectとOpenNI

1.1.1. Kinectの概要
1.1.2. OpenNIの概要
1.1.3. Kinectプログラミングにあたって

2. OpenNIプログラミング環境の作成

2.1. OpenNI開発環境の作成

2.1.1 本書の開発環境
2.1.2. Windows C++
2.1.3. Windows C#
2.1.4. Linux(Ubuntu)
2.1.5. Mac OS
2.1.6. 開発環境作成における注意点

3. OpenNI入門

3.1. OpenNIの構成

3.1.1. OpenNIライブラリのクラス概要
3.1.2. Generator
3.1.3. MetaData
3.1.4. Capability

3.2. OpenNIプログラミング

3.2.1. Kinectの初期化や情報取得をする
3.2.2. カメラ画像を表示する
3.2.3. 距離を測定する
3.2.4. デプス(深度)マップを作成する
3.2.5. ビューポイントの設定
3.2.6. ミラー処理
3.2.7. ユーザーの検出をする
3.2.8. ユーザーのスケルトンを作成する
3.2.9. ジェスチャーを検出する
3.2.10. 手の動きをトラッキングする
3.2.11. Kinectから取得したデータを記録する
3.2.12. 記録したデータを再生する

4. NITE入門

4.1. NITEの構成

4.1.1. NITEライブラリのクラス
4.1.2. Session
4.1.3. Detector

4.2. NITEプログラミング

4.2.1. セッションの開始と停止
4.2.2. 腕の前後動作(プッシュ)を検出する
4.2.3. 腕の左右動作(ウェーブ)を検出する
4.2.4. 腕の円運動を検出する
4.2.5. 腕の上下左右運動(スワイプ)を検出する
4.2.6. 動作の停止を検出する
4.2.7. マルチプロセスに対応する(サーバ)
4.2.8. マルチプロセスに対応する(クライアント)

5. 応用編

5.1. 光学迷彩
5.2. 背景のマスク
5.3. ポーズの検出
5.4. 物体検出
5.5. 複数のKinectを操作する
5.6. KinectでPowerPointの操作

6. 補遺

6.1. 開発環境の作成

6.1.1. Windows
6.1.2. Linux
6.1.3. Mac OS

 

ちなみに、KinectをPCに接続する場合は、Kinectセンサー単品で購入しないとUSBの接続ケーブルが付いてこないそうなので、ご注意下さい。