読者です 読者をやめる 読者になる 読者になる

aa develop

開発と成長

ofxCvのexamplesを実行する

openFrameworks 画像処理 OpenCV

ofxCvは,openFrameworksでOpenCVを使うためのofxOpenCvとは別のアドオンである.以下から,取得できる. kylemcdonald/ofxCv

ofxCV内にある「example-###」というサンプルを実行する.ここには,ソースしかないので,プロジェクトファイルは,以下のサイトを参考にして,emptyExampleから持ってくる. プロジェクト

ofxCvのヘッダーファイルを見つけられるようにProject.xcconfigのHEADER_SERARCH_PATSHSを次のように変更する.

HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) "../../../addons/ofxOpenCv/libs/opencv/include/" "../../../addons/ofxCv/libs/ofxCv/include/"

ただ,自分の環境ではなぜか上手く行かなかったため,ofXCodeMenuを用いる別の方法を使った.

この後,エラーが出まくって全く上手く行かなかったが,結局,原因はopenFrameworksのバージョンが0.8.4だったためだと判明.バージョンを0.9.0にしたらすんなりとビルドできた.

以下,各サンプルを分かる範囲で解説.

example-ar

よくわからない.

example-background

記録した背景画像との差分で二値化画像をつくる.スペースキーで背景画像を記録する. f:id:aa_debdeb:20160714103532p:plain

example-bayer

ベイヤー画像をRGB画像にする. Computer Vision Advent Calendar 2013 - AkiWiki f:id:aa_debdeb:20160714103640p:plain

example-blur

カメラ画像を平滑化する(ぼかす).キーボードを押すと,ガウシアンフィルタと(たぶん)ボックスフィルタを切り替えることができる. f:id:aa_debdeb:20160714103756p:plain

example-calibration

キャリブレーション.ビルドはできるがエラーで上手く機能せず.

example-calibration-lcp

エラーでビルドできず.

example-coherent-lines

DOGフィルタでエッジを検出?cannyフィルタと比較している. 画像処理を始めよう ー特徴量2 SIFTー - プログラムdeタマゴ f:id:aa_debdeb:20160714103840p:plain

example-contours-advanced

輪郭を抽出する.マウスのx座標で二値化するときの閾値を変更することができる.マウスをクリックすることで抽出する色を選択,色々な形を輪郭にフィットさせる. f:id:aa_debdeb:20160714103931p:plain

example-contours-basic

輪郭を抽出する.マウスのx座標で二値化するときの閾値を変更することができる. f:id:aa_debdeb:20160714104021p:plain

example-contours-color

輪郭を抽出する.マウスのx座標で二値化するときの閾値を変更することができる.マウスをクリックすることで抽出する色を選択,rキーでRGBモード,hキーでHSVモードに切り替えることができる. f:id:aa_debdeb:20160714104109p:plain

example-contours-following

ビルドはできるが,エラーが出るため実行できず.

example-contours-quad

輪郭を抽出する.マウスのx座標で二値化するときの閾値を変更することができる.マウスをクリックすることで抽出する色を選択,任意の形の四角形を輪郭にフィットさせる. f:id:aa_debdeb:20160714104145p:plain

example-contours-tracking

ビルドはできるが,エラーが出るため実行できず.

example-difference

前フレームとの差分を取得し,各色ごとに画像全体でどれくらい変化しているかを表示する. f:id:aa_debdeb:20160714104236p:plain

example-difference-columns

前フレームとの差分を取得し,画像の各色ごとに各列についてどのくらい変化しているかを表示する. f:id:aa_debdeb:20160714104305p:plain

example-edge

カメラ画像のエッジを検出する.右上がcannyフィルター,右下がsobelフィルター.cannyフィルターはマウス位置によってパラメータを変更することができる. エッジ検出 - Wikipedia f:id:aa_debdeb:20160714104343p:plain

example-empty

空のプロジェクトファイル.

example-estimate-affine

アフィン変換する.コンソールに結果が出力される.中で何をやっているかよくわからず. アフィン変換とは - 大人になってからの再学習

example-face

顔認識する./bin/data以下にhaarcascade_frontalface_default.xmlを置く必要がある.このファイルは以下のところにある.

openFrameworks/examples/addons/opencvHaarFinderExample/bin/haarcascade_frontalface_default.xml

example-face-follow

顔認識して,目の位置にサングラスの画像を置く.haarcascade_frontalface_default.xmlが必要.

example-face-zoom

顔認識して,顔だけを切り取る.haarcascade_frontalface_default.xmlが必要.

example-flow

オプティカルフロー.パラメータをGUIで変更可能. f:id:aa_debdeb:20160714104450p:plain

example-flow-distort

オプティカルフローを用いて,カメラ画像中の動きを歪ませる. f:id:aa_debdeb:20160714104546p:plain

example-flow-distort-shader

motionAmplifierで,カメラ画像中の動きを歪ませる.マウス位置でパラメータを変更可能.example-flow-distortとの違いがよくわからない. f:id:aa_debdeb:20160714104656p:plain

example-flow-keypoints

オプティカルフローで何かしている?

example-gesture

よくわからない.

example-homography

4つ以上の点でホモグラフィ変換する. ホモグラフィ - Shogo Computing Laboratory f:id:aa_debdeb:20160714104742p:plain

example-kalman

カルマンフィルターで次のマウス位置を予測する.白い線がマウスの実際の位置,赤い線が前の時刻の情報から推定した位置,緑の線が現在観測した情報に基づき新たに推定した位置を表している. カルマンフィルター - Wikipedia f:id:aa_debdeb:20160714104815p:plain

example-kalman-euler

カルマン法で角度を予測する?詳細は不明.この辺りが関係ありそう. KalmanFilter f:id:aa_debdeb:20160714104853p:plain

example-smile

笑顔を認識する.haarcascade_frontalface_default.xmlとsmiled_05.xmlが必要.smiled_05.xmlは以下から.

https://github.com/hromi/SMILEsmileD/blob/master/smileD/smiled_05.xml

example-threshold

カメラ画像を二値化する.マウスのx座標で閾値を決めることができる. f:id:aa_debdeb:20160714104942p:plain

example-unditortion

カメラ画像の歪みを補正する.setup()内のcalibration.setFillFrame(true)の引数をfalseに変えると,以下のような歪んでいる画像となるが,trueにすると左右でほとんど同じになる. f:id:aa_debdeb:20160714105041p:plain