楽するためにはどんな苦労もいとわない

プログラミングにまつわることの雑記

横浜iPhone勉強会(yidev)で発表しました

というわけで、どんな内容だったかの発表資料を書いておきます。

・OpenCVで遊ぼう

・OpenCVとは
 ・オープンソースな画像編集ライブラリ
 ・元Intel製→現在はWillow Garage
 ・BSDライセンス(ライセンス表記のみ)
 ・C/C++なのでObjective-Cでも利用可

・Code Review
 ・IplImage構造体
  ・OpenCVでの基本となるイメージObj
 ・CvHaarClassifierCascade構造体
  ・顔検出の元
  ・正面顔、上半身、横顔等の定義されたXMLファイルを読み込んだもの
 ・cvHaarDetectObjects関数
  ・顔検出関数
  ・引数scale_factorを大きくすることで顔認識のサイズが荒くなり、速度が早くなる
 ・cvCreateImage関数
  ・IplImageを生成する
  ・チャンネル数に注意
 ・cvCvtColor関数
  ・チャンネル数を合わせるために変換する
 ・cvReleaseImage関数
  ・IplImageを解放する
 ・cvPyrDown関数
  ・「奇麗に」半分にする

・面白い関数
 ・cvFloodFill
  ・指定した色で塗りつぶす
  ・顔を自動で塗りつぶそうとしたが...

 ・cvInpaint
  ・不要オブジェクトの除去
  ・Photoshopでいう指先ツール
  ・範囲内のもの消し、その外側から補間
  ・欠点:範囲が多いと処理が重い

 ・cvFindContours
  ・輪郭抽出
  ・処理がいろいろと面倒
  ・写真には不向きか?

 ・cvThreshold
  ・2値化
  ・いろいろな関数の前準備として有用
  ・RGB、HSVの1成分の2値化すると、肌色だけ抽出も可
  ・簡単にしたければ「大津の手法」が楽

 ・cvSmooth
  ・平滑化(画像をなじませる)
  ・範囲が広いと多少重い

・注意点
 ・ROI (Region Of Interest)
  ・画像に対してROIを設定すると、その部分画像が画像全体と同一に扱われる
  ・srcのROIとdstのROIは一緒にしなくてはいけない
  ・編集する箇所を限定することで、かなりの高速化が可能

 ・cvCvtColor
  ・void cvCvtColor( const CvArr* src, CvArr* dst, int code );
  ・引数にあうようなチャンネルに揃えるためによく利用する
  ・RGB→HSV、GRAY→RGB等も

・高速化について
 ・ROIの利用
 ・解像度を落とす
 ・顔検出の高速化
  ・対象エリアを限定(下4分の1は無視等)
  ・CvHaarClassifierCascadeを保持
  ・cvHaarDetectObjects関数の引数の見直し


OpenCV+iPhone

今度の横浜iPhone勉強会のネタを書く。

1、サンプルのダウンロード
・http://niw.at/articles/2009/03/14/using-opencv-on-iphone/ja
を参考にgitでダウンロード

> git clone git://github.com/niw/iphone_opencv_test.git

gitがない場合は
http://code.google.com/p/git-osx-installer/downloads/list
からダウンロードして、インストール。


2、OpenCV基礎知識

3、OpenCV実践編

4、OpenCV高速化編

新アプリ画像

GreenScreenTarget

何を作っているのでしょうか…?
livedoor プロフィール
  • ライブドアブログ