アーカイブ

‘画像処理’ タグのついている投稿

OpenCVをはじめた

2009 年 2 月 9 日 shokai コメントはありません
カテゴリー: 未分類 タグ: , , ,

openFrameworksをやっていて詰まったのでとりあえずOpenCVをやってみることにした。

openFrameworksはOpenCV・OpenGL・シリアルポート関連・音声関連のC++ライブラリをまとめたWin/Mac/Ubuntuで動作するクロスプラットフォームラッパーで、processingの影響を受けているらしいのだが、その中のOpenCVとOpenGL自体がまず巨大なライブラリなのでこいつらを扱う作法を知っていないとopenFrameworksが使いこなせない。


今回はOpenCVを単体で扱ってみてどんなもんか探ってみた。


■OpenCVのセットアップ、サンプル実行、コンパイル環境と対応カメラの確認

マシンに3つOSが入っているので実行環境も3つ揃えてみた。
MacとUbuntuはgccで、WinはVS2008でコンパイル。Ubuntuは色々ためしたけどiSightを認識しなかったが古い外付けUSBカメラを認識して使えた。
この内Macだけが駄目。描画が異常に重い。ググったらhighguiとCarbonの組み合わせが悪さしている?ような情報もあったがよくわからなかった。でもちゃんと動いていると報告してる人がたくさんいる。悔しい。

最近は全部パッケージ管理システムから入るんですね


本当はMacかUbuntuで動かしたかったけど、WindowsでVS2008でやる事にした。
俺が電車で移動中プログラムを書く事が多いので、Windowsからは内蔵i-Sightを使えて一番都合が良い。

cvWaitKey(msec)の待ち時間を短くしすぎなければ(30ぐらいなら大丈夫)どの環境でも動く事が確認できたので、後述するプログラムはどの環境でも動くと思う。少なくともWindowsとUbuntuでは動いている。



■画像処理の勉強

この本でやった。プログラムの途中重要な定数宣言部分が省略されまくったりしていて困ったけど、理論的な所は詳しく解説してくれているのでこの本と翻訳版ドキュメントサンプル集を見ればなんとかなった。


OpenCV プログラミングブック
奈良先端科学技術大学院大学 OpenCVプログラミングブック制作チーム
毎日コミュニケーションズ
売り上げランキング: 58513
おすすめ度の平均: 3.0
3 とっかかりとしてはよい本
4 OpenCVを日本語でまとまって解説した初めての本
2 肩すかし


OpenCVというとまっさきに「顔認識」を思い浮かべるけど、機械学習を用いた分類器については巻末のリファレンスに少し書かれている程度で、この本では基本的なOpenCVの組み込み関数を使った2値化やノイズ除去や表色系の変換、輪郭、エッジ抽出、テンプレートマッチング、物体追跡、背景差分法などが書かれている。書かれている内容はbuilt with processingディジタル画像処理の基礎と応用なんかに書かれている内容と被っている部分が多いけど、OpenCVの関数を使っているから滅茶苦茶処理が速い。やばい。もっと早くOpenCVに移れば良かった。


続きを読む…

AS3 – あらためてラベリング処理

2008 年 1 月 31 日 shokai コメントはありません
カテゴリー: 未分類 タグ: , , ,

火曜に、imglのうっちーとあらためてラベリング処理ってどうやんのよという話をしていて、あらためてAS3で書き直した。

ただし、ラベルの衝突処理はまだやっていない。

ラベリング処理について→s.h.log: Proce55ing – 2値化画像を4近傍ラベリング処理してパーツ抜き出し

今まで、ラベルそのものを2次元のint配列で管理してたけど、今回はBitmapDataオブジェクトとして保存する様にしてみた。BitmapDataならx,y座標で要素にアクセスできるし、ピクセルはuint型なので都合がいい。

■できたもの

download => fla, as, swf (FlashDevelop3.0.0 Beta5 + FlashCS3)

年末年始作ったカメラから画像処理のサンプルを元に改造した。

webcamから撮影してBitmapDataにして、1ピクセルずつ走査して真っ白(0×00FFFFFF)のピクセルを検出。

さらにラベリング処理をして、「ピクセルのかたまり」毎に番号をつける。

(0×00FFFFFFは蛍光灯を撮影すると良いです)

labelinglabelinglabeling

今回はノイズを飛ばしたりしていないので、右の本棚の小さな白にも反応してしまって28個とか検出される

labeling

ラベルの衝突時の処理もしていないので、左上が空いた弧の様な形の時に割れてしまう

labeling

この辺はまたの機会に。

続きを読む…

AS3 – BitmapMirror.asでYouTubeを鏡写しにする

2007 年 9 月 30 日 moblog コメントはありません
カテゴリー: 未分類 タグ: , , , , ,

右下の「Load」を押して再生。

Source Code (Flash CS3 / AS3)

土善開発合宿(ゆーすけべー日記: 奥出研’07秋合宿@土善旅館に部外者(OB)の開発合宿も兼ねて参入してきた)で作ってたBitmapMirror.asを公開しておきます。

宴会直前に到着したのであんまり時間がなかったけど、今回やったことは3つ

1.YouTubeのビデオ(flv)をGoogleVideo経由で取得して

2.AS3のBitmapDataとして扱って

3.鏡面反射させる

ビデオはこれを読み込んでいます。ひゃあ゛ああああうまい゛いいいいい

■1.YouTubeのビデオをGoogleVideo経由で取得する

数ヶ月前にGoogleに買収されて以来、

http://www.youtube.com/watch?v=YRY0M5cgDG8

のビデオは

http://cache.googlevideo.com/get_video?video_id=YRY0M5cgDG8

から取れる様になりました。

以前はWebService::YouTube使って

スクレイピングしなければならなかったけど、素直になった。

続きを読む…

Flash CS3 – 背景差分法

2007 年 9 月 4 日 moblog コメントはありません
カテゴリー: 未分類 タグ: , , , , ,

昨日Flash CS3を買ったので、さっそくAS3でやってみた。

自分で1からBitmapDataクラスを使うのは初めてだったけどprocessingやってたお陰ですぐわかった。

一旦カメラの前からどいて、Save Backgroundボタンを押してみてください

うまくいくとこうなってるはず

BackgroundSubtraction

SourceCode (Flash CS3 / AS3)

続きを読む…

track feed