「OpenCV 2 プログラミングブック」レビュー

マイナビ様より「OpenCV 2 プログラミングブック」を献本頂きましたのでレビューを
簡単にまとめたいと思います.購入する際の参考にして頂ければと思います.

[tmkm-amazon]4839941262[/tmkm-amazon]

構成としては書籍ページの目次に沿って(本音ベースで)書いています.

▽Chapter.1 導入 編
OpenCVの歴史だけでなくてライセンス面の記載も
これまでの書籍に比べてしっかり書かれている印象です。

▽Chapter.2 スタートアップ 編
1 OpenCV 2.3簡単インストール(Windows編)
2 OpenCVをMacで利用する
3 Ubuntu 10.04 LTSでOpenCVを利用する

スクリーンショット付きで解説が丁寧なのと,Win,Mac,Linux一通り載っているのは○。
あと,Linuxでよくトラブルになりがちなカメラキャプチャについてもシステムの問題か
OpenCVの問題かを切り分けるための基本アプリ紹介は地味にうれしいかも。

4 C++インタフェース
従来の書籍ではあまり触れられていないC, C++ I/Fの違いやC,C++ I/Fの共存方法についての
記載はこれまでC I/Fで作った資産を再活用したい場合には嬉しいです。

5 Pythonインタフェース
スクリーンショット付きでわかりやすいのと結構嵌りがちなNumpyインストールも
きちんと書かれています。Mac,Linuxについては紙面の都合で省略?
 
6 GPUによる画像処理
GPU関連の記載はちょっと薄めな印象。
おそらく,執筆当時はあまりGPU機能が有効になる関数が多くなかったことや
最近のGPU実装更新のスピードが速いためだと思われます。ただ,基本的な使い方は
押さえてあるので導入についてはすんなり読めるはず。欲を言うなら,
GPU実装されている関数リスト等があると便利かも。

▽Chapter.3 リファレンス 編
1 cv::Matの基本処理
2 線形代数
3 画像処理
4 描画処理

C++ I/F最初の難関であるMatの使い方や基本的な画像処理の関数の使い方が
一通り網羅されています。サンプル付きなので非常にとっかかりやすいと思います。

5 入出力
6 その他の機能

画像の読み書きやカメラキャプチャ等よく使う機能は一通り網羅されているため,
サンプルを参考にすれば大抵のことはできると思います.
欲を言えばDirectShowを使ったキャプチャもVideoCaptureで使えることが
あまり知られていないようなのでその辺の記述もあるとなお良いかも。
あと,Qtを有効にした場合の基本的な使い方もあるとうれしかったです(結構便利なので)。

▽Chapter.4 ケーススタディ 編
1 画素値の直接操作

画素アクセス方法別の速度比較はパフォーマンス的に重要なトピックなので
初学者だけでなくとも読む価値があると思います。
 
2 カメラキャリブレーションとステレオ視による距離計測
基本的なキャリブレーションのやり方については記載されているので簡単に試せます。
欲を言えば2.3から導入されたCirclesGridを使ったキャリブレーションの
記事もあると嬉しかったかも。

3 画像のJPEG圧縮とPSNRの計算
これまでのOpenCV本ではあまり取り上げられていないと思われる画像指標PSNRについて
記載があるので,この辺りのデータを取る必要がある研究者向けとしては割とうれしいトピック。

4 簡単な笑顔度の算出
5 CAPTCHA画像の生成

比較的簡単なアルゴリズムの組み合わせによる笑顔度算出サンプルが紹介されている。
OpenCVの中身に慣れてきたら自身でアルゴリズム改善等をしてみて楽しめるトピック。

6 KinectとOpenCVの連携
Kinect連携はOpenCVを使ってやるサンプルはWeb上にそこまで多くない(Kinectを
他のSDK叩くサンプルが多い)のでサンプルとしてまとまっているのは重宝するかも。
 
7 ミニチュア風画像処理
8 SURF特徴を使ったイメージモザイキング
このあたりのトピックは最近のスマートフォン向け画像処理アプリでよく使われると思われるので
オリジナルの画像編集アプリ等を作りたい場合には参考になりそう。

9 機械学習と画像処理
クラスタリングの話がメイン。
この分野の需要はあると思われるのでもう少しボリュームがあると嬉しいかも。
(OpenCVの機械学習がアレなので意図的に削られた?)

10 顔の子供化
11 Photoshop向けプラグインの作成

OpenCVを使ったPhotoshop向けプラグイン作成の記事は
従来のOpenCV本には無いはずなので,自前で作ったアルゴリズムを俺々Photoshopプラグインを
作りたい場合には有用(おそらくWeb上にもあまり情報は無いはず)。

12 動画ファイルをカメラ入力のように扱う
研究の場合,動画ファイルを入力としてアルゴリズム実装することが多いので
開発効率という点でこのトピックは嬉しいと思います。よく動画読み込みで
コーデック関連のトラブルを耳にするのでその辺まで突っ込んだ記事があれば良かったかも。

「彼氏の財布がマジックテープ式だった」をiPhoneで再現してみた(その2)

から機能追加しました!!

・財布画像アップデート

twitter上で前回の動画に言及してくれていた
ちょりさん(http://www.nicovideo.jp/mylist/15194746)に
ダメもとで財布イラストを依頼してみたところ,
キレイな財布イラストを描いて頂きました.
本当にありがとうございます!!

・小銭音再生機能
加速度センサの値を取得して,激しく振りが検出された場合に
小銭の音が鳴ります.

・スライドして段階的にバリバリ鳴る
指をスライドすることで段階的にバリバリ鳴ります

・財布の開閉が可能
指を上下にスライドすることで財布が開閉します.
※バリバリ音は開くときのみに鳴ります

・「やめて!!」表示機能
振ったとき or たくさんスライドすると「やめて!!」という
メッセージが表示されます.

AppStore申請完了しました!!
受領されたらアプリの配信URLと動画を公開したいと思います.

「彼氏の財布がマジックテープ式だった」をiPhoneで再現してみた

昨日の酒の勢いで,「彼氏の財布がマジックテープ式だった」
iPhoneアプリで再現してみました.製作時間1時間ということで
かなりヘタレな実装ですが,マジックテープ式財布を扱った
iPhoneアプリとしては世界初なはず!!(多分)

絵が得意な方がいらっしゃいましたら,絵を提供下さい。。。
動画にある絵はパワポでてきとーに描きました(苦笑)

某絵師さんに財布のイラスト依頼しました!!

*************************

【追記(2009/10/26)】

タグがカオスな感じになってきた!!
「無駄に高画質」タグはちょっと意外だったかも.
無駄って言うな-!! ヽ(`Д´)ノウワァァァン
#ビデオカメラ持ってるのに出すのが面倒でデジカメで撮りました.

あと,「実写でもいいんじゃね」「くだらねぇww」
ってコメントに対しては,自分でもそう思ってるので
全く反論の余地がありません(汗)

【追記(2009/11/1)】
描画方法をOpenGL ESに変更したり,100均でマジックテープ入手して
サンプリングしたりしてます.短い音をスワイプ量によって鳴らして
それらしく鳴るのかはやってみないとなんとも。。。
#コメントが流れすぎて要望機能の全てを拾えないかも.

今週末くらいに形になって,気分が乗ったらAppStoreに申請したいな-と.