opencv-linux Linux 1.1pre1 % tar zxvf opencv-1.1pre1.tar.gz % cd opencv %./configure --with-apps % make % su # make install 2.2 Windows Windows

Similar documents
OpenCV IS Report No Report Medical Information System Labratry

スライド 1

2 Eclipse 2.1 Eclipse 1. Eclipse 2. 3 ( 4) E:Yworkspace OK 3 Eclipse 4 3. Eclipse 5 5 Eclipse Eclipse 2. 7 C 2

memo

1 (PCA) 3 2 P.Viola 2) Viola AdaBoost 1 Viola OpenCV 3) Web OpenCV T.L.Berg PCA kpca LDA k-means 4) Berg 95% Berg Web k-means k-means

3 2 2 (1) (2) (3) (4) 4 4 AdaBoost 2. [11] Onishi&Yoda [8] Iwashita&Stoica [5] 4 [3] 3. 3 (1) (2) (3)

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

スライド 1

TA TA TA abcdefgh abcdefgh C PC Wii bluetooth 2.2 Bluetooth USB Princeton PTM-UBT3S 1 1

ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識

Taro-ポインタ変数Ⅰ(公開版).j

(3.6 ) (4.6 ) 2. [3], [6], [12] [7] [2], [5], [11] [14] [9] [8] [10] (1) Voodoo 3 : 3 Voodoo[1] 3 ( 3D ) (2) : Voodoo 3D (3) : 3D (Welc

Microsoft PowerPoint - CproNt02.ppt [互換モード]

PowerPoint プレゼンテーション

Microsoft Word - Cプログラミング演習(12)

Microsoft PowerPoint - pr_12_template-bs.pptx

(MIRU2008) HOG Histograms of Oriented Gradients (HOG)

Taro-ファイル処理(公開版).jtd

Microsoft PowerPoint - lec10.ppt

簡単ラベル作成 印刷マニュアル

コンピュータグラフィックスS 演習資料

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

スライド 1

プログラミング基礎

02: 変数と標準入出力

1 Kinect for Windows M = [X Y Z] T M = [X Y Z ] T f (u,v) w 3.2 [11] [7] u = f X +u Z 0 δ u (X,Y,Z ) (5) v = f Y Z +v 0 δ v (X,Y,Z ) (6) w = Z +

プログラミングI第10回

プログラミング実習I

02: 変数と標準入出力

OpenCV Windows(cygwin) Linux USB PC [1] Inel OpenCV OpenCV 1 Windows Linux OpenCV (a) (b)2 (c) (d) 1: OpenCV 1

PowerPoint プレゼンテーション

Microsoft PowerPoint ppt

PowerPoint Presentation

2 2 Gtk+ GUI (widget ) GUI Gtk+ GUI Gtk+ GUI 2.2 Gtk GUI sample1.c Web ( tani/class/mech enshu/) enshu2009gui1.tar.gz

PowerPoint プレゼンテーション

21 e-learning Development of Real-time Learner Detection System for e-learning

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

昨年度までの研究紹介 および 研究計画

GID Haar-like Mean-Shift Multi-Viewpoint Human Tracking Based on Face Detection Using Haar-like Features and Mean-Shift Yu Ito (Shizuoka Univers

1 Web [2] Web [3] [4] [5], [6] [7] [8] S.W. [9] 3. MeetingShelf Web MeetingShelf MeetingShelf (1) (2) (3) (4) (5) Web MeetingShelf

やさしくPDFへ文字入力 v.2.0

PowerPoint プレゼンテーション

SICE東北支部研究集会資料(2013年)

PowerPoint プレゼンテーション

Microsoft PowerPoint - kougi2.ppt

258 5) GPS 1 GPS 6) GPS DP 7) 8) 10) GPS GPS ) GPS Global Positioning System

0_テキストマイニング環境構築_mac

PowerPoint Presentation


Microsoft PowerPoint - prog04.ppt

IPSJ SIG Technical Report Vol.2015-MUS-107 No /5/23 HARK-Binaural Raspberry Pi 2 1,a) ( ) HARK 2 HARK-Binaural A/D Raspberry Pi 2 1.

Microsoft Word - Cプログラミング演習(10)

ZoomBrowser EX Ver5.7 使用説明書(Windows)

[12] [5, 6, 7] [5, 6] [7] 1 [8] 1 1 [9] 1 [10, 11] [10] [11] 1 [13, 14] [13] [14] [13, 14] [10, 11, 13, 14] 1 [12]

Maple 12 Windows版シングルユーザ/ネットワークライセンス

2 ColorSpace DepthSpace CameraSpace Kinect V2 Kinect V2 BOdyIndex 3. NtKinect Kinect V2 C++ NtKinect [4] NtKinect = Kinect SDK + + STL(C++) + OpenCV +

Transcription:

OpenCV Development of Image Understanding Programs by using the OpenCV Library 1 Takekazu KATO 1 Kyoto University This paper introduces OpenCV library that is an open source library for computer vision and image processing. It provides many fundamental operations for image processing and useful computer vision algorithms. This paper describes how to install and setup the OpenCV library, and explains programming for the OpenCV library with some example programs. 1. OpenCV Intel BSD 1 SouceForge OpenCV RGB 8bit 8bit 8bit ROI (Region of Interest) COI (Channel of Interest) OpenCV 300 4 CXCORE OpenCV CV 5 Image Processing Structural Analysis Motion Analysis and Object Tracking Pattern Recognition Camera Calibration and 3D Reconstruction 3 ML : 606-8501 075-724-6141 t.kato@ieee.org 1 BSD HighGUI GUI OpenCV Linux Windows Linux Fedora 10 gcc-4.3.2 Windows WindowsXP SP2 Visual C++ 6.0 2. OpenCV Linux Windows OpenCV 2.1 Linux Linux Fedora 10 Linux 2.1.1 OpenCV OpenCV gtk+ 2.x, libjpeg, zlib, libpng, libtiff, v4l Fedora yum 2.1.2 OpenCV OpenCV Fedora yum # yum install opencv opencv-devel Fedora 10 opencv 1.0.0 OpenCV Linux OpenCV http://sourceforge.net/projects/opencvlibrary/ 1

opencv-linux Linux 1.1pre1 % tar zxvf opencv-1.1pre1.tar.gz % cd opencv-1.1.0 %./configure --with-apps % make % su # make install 2.2 Windows Windows Windows 1.1pre1 SourceFourge opencv-win OpenCV 1.1pre1.exe 2.3 Mac OS X Mac OSX Xcode DMG MacPorts 2, Fink 3 Linux Linux Linux 2.4 OpenCV OpenCV Linux /usr/local/shared/doc/index.htm Windows C:\Program Files\OpenCV\docs\index.htm PDF PDF OpenCV Intel [Intel Corp.] OpenCV FAQ Yahoo Groups OpenCV [Yahoo] OpenCV opencv.jp[ ] OpenCV- 1.0 OpenCV-1.1pre1 OpenCV [ 07] OpenCV OpenCV [David A. Forsyth 07] 3 1 2 3 http://www.macports.org/ http://www.finkproject.org/ [ 09] CVIM CV Windows cygwin [ ] cygwin USB [ ] Tips Linux aru technote[aru] Linux OpenCV Yonekura [Yonekura] Ruby OpenCV 3. OpenCV 3.1 Linux /usr/local/share/opencv/samples build.sh %cp -r /usr/local/shared/opencv/samples./ %cd samples/c %export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig %sh build.sh 3 pkg-config bash sh tcsh csh %setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig pkg-config build.sh #!/bin/sh for i in *.c; do echo "compiling $i" g++ -O3 -I/usr/local/include/opencv -o \ basename $i.c $i -L/usr/local/lib -lcxcore \ -lcv -lhighgui -lcvaux; done Windows C:\Program Files\OpenCV\samples\c 3.2 OpenCV 1 20 10 200 2

The 23rd Annual Conference of the Japanese Society for Artificial Intelligence, 2009 20 個のサンプルのうち camshiftdemo, facedetect, laplace, lkdemo, motempl は 動画を対象としたプログラムであり カ メラを繋いでリアルタイムに処理を行なったり AVI ファイル などを読み込ませて処理させることができる 追跡を開始する 登録された 緑色の点で表わされる (図 1) また キーボードから r をタイプすると自動で追跡しやす い特徴点を検出し 追跡を開始する c をタイプすると全て の特徴点を消去する ESC キーで終了できる 表 1: OpenCV に添付されているサンプルプログラム プログラム名 アルゴリズム camshiftdemo contours convexhull delaunay demhist distrans drawing edge facedetect ffilldemo fitellipse kalman kmeans laplace lkdemo minarea morphology motempl pyramid segmentation squares CAMSHIFT [Bradski 98] による対象追跡 二値画像の輪郭検出 凸包の計算 ドロネーグラフの計算 ヒストグラム変換 距離変換 図形の描画 Canny エッジ抽出 [Canny 86] Cascade 型識別器と Adaboost [Viola 01] による顔検出 領域の塗りつぶし 楕円フィッティング カルマンフィルタ K-means クラスタリング 画像の空間微分 LK 法 [Lucas 81] による特徴点追跡 外接矩形の計算 Mathmatical Morphology モーションテンプレート 領域分割 図 1: lkdemo の実行画面 3.2.2 facedetect の実行 facedetect は Viola と Michael [Viola 01] が提案した Adaboost によって学習した Cascade 型の識別器によって 顔を検出するアルゴリズムを実装したプログラムである あら かじめ顔画像と非顔画像のトレーニングデータを与えて学習し た識別器を用いて 入力画像から顔画像を検出するアルゴリズ ムであり高速 かつ安定に動作することから 顔検出 認識の 分野では近年注目されている手法である facedetect では まず顔画像と非顔画像を学習する必要が あるが ここではその方法は割愛し OpenCV に添付されて いる あらかじめ学習した識別器の情報を用いる方法を紹介 する 学習方法について興味のある人は ソースファイルの apps/haartraining/doc/haartraining.htm に学習方法の マニュアルがあるので そちらを参考にされたい facedetect を実行するには 識別器の情報を指定する必要が ある 識別器の情報は Linux 版では /usr/local/share/opencv/haarcascades Windows では C:\Program Files\OpenCV\data\haarcascades に 置 い て あるので この中の XML ファイルのうち好きなファイル を 指 定 す る と 良 い 例 え ば 正 面 顔 を 学 習 し た haarcascade frontalface alt.xml を指定するには以下のように実行 する %./facedetect --cascade=/usr/local/share\ /opencv/haarcascades/haarcascade_frontal_alt.xml 長方形検出 ここでは 特徴点追跡のプログラム lkdemo と 顔検出のプ ログラム facedetect を例に挙げて使い方を説明する これらの プログラムでは カメラを使うことができる 使用できるカメ ラ キャプチャーカードは Linux の場合では Video for Linux に対応するキャプチャーカード もしくは IEEE1394 経由で キャプチャーする DCAM 対応のカメラである Windows の 場合は Video for Windows (VFW) 対応のカメラ キャプ チャーカードを使用できる カメラ キャプチャーカードの設 定方法については ここでは割愛する 使用できるカメラを 持っていない場合は AVI ファイルを読み込ませて処理させ ることもできる Windows の場合には facedetect.cmd という名前でオプショ ンを付けて実行するバッチファイルが用意してあるので こ れを適宜書換えてダブルクリックして実行すれば良い なお カメラから画像を取り込む変りに AVI ファイルから読み込む には lkdemo と同様に 最後にファイル名を指定すれば良い facedetect を実行すると lkdemo と同様にウィンドウが開 き入力画像が表示され 図 2 のように 顔を検出すると赤い 枠で表示される この図のように明さや顔の大きさ 多少の顔 の向きが異なっていても検出することができる 3.2.1 lkdemo の実行 lkdemo は LK 法と呼ばれる Lucas と Kanade [Lucas 81] によって提案された特徴点追跡のアルゴリズムを実装したもの である LK 法はステレオマッチング Structure from motion オプティカルフローの計算 ロボットの動物体検出など様々な 場面で利用されている lkdemo の実行方法は カメラから画像を取り込む場合は 引数なしで./lkdemo と実行すれば良い Windows の場合 では lkdemo.exe をダブルクリックしてもいい AVI ファイ ルから画像を読み込む場合は AVI ファイルを引数として./lkdemo hoge.avi として実行する Windows でもコマン ドプロンプトを開いて同様に実行できる lkdemo を実行すると ウィンドウが開き 取り込んだ画像 が表示される この画像上でマウスの左ボタンをクリックする と 特徴点を追加 削除することができ 追加された特徴点の 図 2: facedetect の実行画面 3

4. OpenCV OpenCV OpenCV #include <stdio.h> #include <stdlib.h> #include <stdint.h> // OpenCV #include <cv.h> #include <highgui.h> int main(int argc, char **argv){ IplImage *image; // uint8_t *pixel; int x,y,c; // % g++ pkg-config --cflags opencv Example1.c \ -o Example1 pkg-config --libs opencv pkg-config Windows Visual C++ Win32 Console Application Example1.c OpenCV ( 4(a),(b)) cxcore.lib, cv.lib, highgui.lib ( 4(c)) // if(argc<3) { fprintf(stderr,"usage:%s input output\n", argv[0]); exit(1); image = cvloadimage(argv[1],1); for(y=0;y<image->height;y++) for(x=0;x<image->width;x++){ (a) // (x,y) pixel = image->imagedata + y*image->widthstep + x*image->nchannels; for(c=0;c<image->nchannels;c++) pixel[c] = 255-pixel[c]; (b) cvsaveimage(argv[2],image); // cvreleaseimage(&image); return 0; 3: (Example1.c) 3 Linux Windows 4.1 Linux (c) 4: Visual C++ Example1 BMP, JPEG, PNG, PNM OpenCV lena.jpg 4

The 23rd Annual Conference of the Japanese Society for Artificial Intelligence, 2009 %./Example1 lena.jpg lena-nega.jpg (a) 入力画像 (b) 出力画像 プログラムの解説 cv.h には OpenCV の関数の宣言や 各種構造体の定義など が収められている OpenCV ライブラリを使ったプログラム を書くには 必ずこのファイルをインクルードする また次の highgui.h は OpenCV に附属の GUI ツールキットや 画像 の保存 読み込みなどの各種ユーティリティ関数の宣言が含 まれている Example1.c では cvsaveimage, cvloadimage を使うためにこのファイルをインクルードしている 4.2.2 IplImage 構造体と画素へのアクセス 次に main 関数を見ていくと IplImage へのポインタ型の変 数が定義されている IplImage は OpenCV で画像を扱うた めの構造体であり この構造体には画像サイズや画素の型 画 像データへのポインタなどの情報が収められている 図 6 に IplImage 構造体の定義の一部を示す なお この定義では説 明しないメンバは省略しており メンバ定義の順序やコメント は適宜書換えてある typedef struct _IplImage { int nchannels; /* チャンネル数 */ int width; /* 画像の幅 */ int height; /* 画像の高さ */ int imagesize; /* 画像のサイズ (バイト数) */ char *imagedata;/* 画像データへのポインタ */ int widthstep; /* 1 ラインのバイト数 */ /*... 省略... */ IplImage; image = cvloadimage("ファイル名",iscolor) cvsaveimage("ファイル名",image) cvloadimage() は指定したファイルから画像を読み込み IplImage 構造体へのポインタを返す 最後の引数 iscolor は カラー画像として読み込むか 濃淡画像として読み込む かのフラグであり 正の整数を指定するとカラーとして読 み込み 0 を指定すると濃淡画像として読み込む また 負 の整数を指定した場合は画像ファイルから自動で判別する cvloadimage() は 画像を収める領域を確保して返すので プログラムで使い終ったときには cvreleaseimage() でメモ リ領域を解放する必要がある cvsaveimage() は 指定したファイルに画像を保存する関 数である このときのファイルフォーマットは ファイル名か ら自動判定される 4.2.4 新しい画像の作成 Example1.c では 画像をファイルから読み込んでいたが 新しく画像を作成することもできる 新しく画像を作成するに は cvcreateimage() を使う 4.2.1 OpenCV のヘッダファイル 図 3 のプログラムを順に解説していく まずは 最初のヘッ ダファイルのインクルードを見て欲しい // OpenCV のヘッダファイル #include <cv.h> #include <highgui.h> IplImage 構造体のメンバ widthstep は 画像の 1 ラインの バイト数である また nchannels は色成分の数であり 例え ば RGB のカラー画像なら 3 濃淡画像なら 1 となる 上記の式で計算した pixel のアドレスから連続した領域に画 素の各色値が収められている 例えば RGB カラー画像なら pixel[0] が赤色成分 pixel[1] が緑色成分 pixel[2] が青 色成分となる 4 4.2.3 画像のロードとセーブ cvloadimage() と cvsaveimage() は それぞれファイルか らの画像の読み込みと ファイルへの保存の関数である 使い 方は以下の通りである 図 5: Example1 の実行結果 (カラーページ参照) 4.2 pixel = image->imagedata + y 座標 * image->widthstep + x 座標 * image->nchannels cvcreateimage(cvsize(画像の幅, 画像の高さ), 画素 の型 チャンネル数) cvcreateimage() は指定された引数に基づいて画像を作成し IplImage 構造体へのポインタを返す 画素の型は 各画素を どのような型として扱うかを示すフラグであり 表 2 に示す 8 種類のマクロで指定することができる 例えば 640x480 の RGB カラー画像で各色成分が 8bit 符号なしの画像を作成す るには次のように指定する IplImage *new_image; new_image = cvcreateimage(cvsize(640,480), IPL_DEPTH_8U 3); 4.2.5 画像処理関数の利用 Example1.c では 画像の各画素を直接アクセスして画像処 理を行ったが OpenCV には各種画像処理関数が豊富に用意 されており 画像処理プログラムを手軽に作成することがで きる 図 7 に示すプログラムは Example1.c の画像の処理部分を 変更し Canny のエッジ抽出 [Canny 86] の関数を使用した ものである コンパイル方法 実行方法は Example1.c と同様 である 図 6: IplImage 構造体の一部 これらのメンバを使って 画像の各画素へ直接アクセスす ることができる 画像のデータは IplImage 構造体のメンバ imagedata に収められており 画像中のある座標の画素が収 められているメモリアドレスの計算方法は次のとおりである 4 このプログラムは各色成分が 8bit 符号なしと仮定しているが そ れ以外の場合は適切な型のポインタでアクセスする必要がある ま た 画素毎の色成分を連続した領域に収めない扱い方も存在する 詳しくはリファレンスマニュアル参照のこと 5

2: OpenCV IPL_DEPTH_8U 8bit (uint8 t) IPL_DEPTH_8S 8bit (int8 t) IPL_DEPTH_16U 16bit (uint16 t) IPL_DEPTH_16S 16bit (int16 t) IPL_DEPTH_32U 32bit (uint32 t) IPL_DEPTH_32S 32bit (int32 t) IPL_DEPTH_32F 32bit (float) IPL_DEPTH_64F 64bit (doulbe) cvloadimage() 0 cvcanny() 3 Canny 8 OpenCV IplImage *image,*edge; image = cvloadimage(argv[1],0); edge = cvcreateimage(cvgetsize(image), IPL_DEPTH_8U,1); cvcanny(image,edge,10,128,3); cvsaveimage(argv[2],edge); 7: (Example2.c ) 8: Example2.c 5. GUI OpenCV GUI HighGUI HighGUI GUI GUI GUI Linux Windows Example3.c cvtreshold() ( ) Example1.c Linux Windows GUI HighGUI cvnamedwindow() cvcreatetrackbar() ( ) cvnamedwindow(wndname,1); cvcreatetrackbar("threshold", wndname, &thresh, 255, on_trackbar); on_trackbar(0); // q while(cvwaitkey(0)!= q ); wndname thresh int 255 on tracker on tracker char *wndname; // IplImage *image,*binary; // int thresh = 128; void on_trackbar(int t){ cvthreshold(image,binary,(double)thresh,255, CV_THRESH_BINARY); cvshowimage(wndname,binary); cvtreshold() thresh cvshowimage() wndname main cvwaitkey(0) while(cvwaitkey(0)!= q ); q cvwait- Key(0) if 6. cvcapture OpenCV cvcapture Linux Windows Linux Video for Linux 6

#include <stdio.h> #include <stdlib.h> #include <stdint.h> // OpenCV #include <cv.h> #include <highgui.h> char *wndname; // IplImage *image,*binary; // int thresh = 128; void on_trackbar(int t){ cvthreshold(image,binary,(double)thresh, 255,CV_THRESH_BINARY); cvshowimage(wndname,binary); int main(int argc, char **argv){ uint8_t *pixel; int x,y,c; // // if(argc<2) { fprintf(stderr,"usage:%s input output\n", argv[0]); exit(1); wndname=argv[0]; image = cvloadimage(argv[1],0); binary = cvcreateimage(cvgetsize(image), IPL_DEPTH_8U,1); cvnamedwindow(wndname,1); cvcreatetrackbar("threshold", wndname, &thresh, 255, on_trackbar); on_trackbar(128); // q while(cvwaitkey(0)!= q ); cvreleaseimage(&image); cvreleaseimage(&binary); return 0; 9: GUI (Example3.c) IEEE1394 DCAM Windows Video for Windows MIL(Matrox Image Library) [aru, Knorr, Sakurai] 11 Example3.c (a) Linux (b) Windows 10: Example3.c CvCapture cvcapturefromcam CvCapture *capture=0; // capture = cvcapturefromcam(0); cvcapturefromcam 0 OpenCV cvcapturefromavi( ) AVI cvqueryframe() image = cvqueryframe(capture); CvCapture IplImage cvcapturefromcam cvwaitkey() 10 10 ( ) (0 ) 7. Intel OpenCV OpenCV GUI OpenCV 7

#include <stdio.h> #include <stdlib.h> // OpenCV #include <cv.h> #include <highgui.h> int main(int argc, char **argv){ char *wndname; // // IplImage *image=0,*gray=0,*binary=0; int thresh = 128; CvCapture *capture=0; // capture = cvcapturefromcam(0); wndname=argv[0]; cvnamedwindow(wndname,0); cvcreatetrackbar("threshold", wndname, &thresh, 255, NULL); // q while(cvwaitkey(10)!= q ){ image = cvqueryframe(capture); if(!image) break; if(!gray) gray = cvcreateimage(cvgetsize(image), IPL_DEPTH_8U,1); if(!binary) binary = cvcreateimage(cvgetsize(image), IPL_DEPTH_8U,1); cvcvtcolor(image,gray,cv_bgr2gray); // cvthreshold(gray,binary,(double)thresh,255, CV_THRESH_BINARY); [Intel Corp.] Intel Corp., : Open Source Computer Vision Library, http://www.intel.com/technology/computing/ opencv/ [Yahoo] Yahoo, : Yahoo Groups OpenCV, Yahoo! Inc., http://groups.yahoo.com/group/opencv/ [ ] OpenCV on cygwin, http://www.dh.aist.go.jp/~kimura/opencv/ [ ], http://www.is.oit. ac.jp/~nishigu/server/ [aru] aru, : OpenCV - 1.1pre, http://rest-term.com/ contents/other/technote/index.php/opencv - 1.1pre [Yonekura] Yonekura, M.: Ruby/OpenCV, http://blueruby.mydns.jp/opencv/ [Knorr] Knorr, G.: Video4linux, http://linux.bytesex.org /v4l2/ [Sakurai] Sakurai, T.:, http://park15.wakwak.com/~unixlife/linux/app-tv.html [Bradski 98] Bradski, G.: Computer vision face tracking as a componento of a perceptual user interface, in Workshop on Applications of Computer Vision, pp. 214 219 (1998) [Canny 86] Canny, J.: A. Computational Approach to Edge Detection, IEEE Trans. on Pattern Analysis and Machine Intelligence, Vol. 8, No. 6, pp. 679 698 (1986) [David A. Forsyth 07] David A. Forsyth ( ), Jean Ponce ( ), ( ), (2007) [Lucas 81] Lucas, B. and Kanade, T.: An Iterative Image Registration Technique with an Application to Stereo Vision, in Proc. of 7th International Joint Conference on Artificial Intelligence (IJCAI), pp. 674 679 (1981) cvshowimage(wndname,binary); cvreleaseimage(&gray); cvreleaseimage(&binary); return 0; [Viola 01] Viola, P. and Jones., M. J.: Rapid Object Detection using a Boosted Cascade of Simple Features., in Proc. of Computer Vision and Pattern Recognition (CVPR2001), Vol. 1, pp. 511 518 (2001) [ 07] OpenCV OpenCV, (2007) 11: (Example4.c) OpenCV [ 09], 1 Level Set,Graph Cut,Particle Filter,Tensor,AdaBoost (CVIM ), (2009) [ ],,, opencv.jp, http://opencv.jp/ 8