2011/02/13

久々の更新

冬のボーナスでついに買ったKindle DXにComputer Vision: Algorithms and Applicationsを入れ、Google翻訳やスペースアルクを使いながら解読作業を行っています。
この本には人間の顔とトラの顔のモーフィングや、複数の写真からパノラマ写真を作ったりと、色々とおもしろそうなネタが散りばめられています。

モーフィングの技術を使って、劇団四季のキャッツみたいな感じにできたら面白いなと思いながらも、それを実際に自分で組もうとなると理論と数式がよくわからないという致命的な問題が。


モーフィングを覚えるにはまだ経験値が足りないようなので、詳解OpenCVに載っている例題を解きながら勉強していくのが良さそうです。

というわけで、まずは最初の方の練習問題を解くことにしました。
(練習問題は詳解OpenCVを参照しています)

3.9 練習問題
1. cxtypes.hを開いて変換ヘルパー関数を探す。(types_c.h に変わっているようです)
1-a. 負の浮動小数点を任意に選び、絶対値、四捨五入、切り捨てを計算する。
1-b. 乱数をいくつか作成する。
1-c. CvPoint2D32fを作って、CvPointに変換する。
1-d. CvPointを作って、CvPoint2D32fに変換する。


作ったものの実行例:

1-a 負の浮動小数点を選んで絶対値、四捨五入、切り捨てを計算
任意の値=-76.543210
絶対値   =76.543210
四捨五入=-77.000000
切り捨て=-76.000000

1-b 乱数をいくつか作成する

(CvRNGは、ランダム値のシードとなるものなので、
シードが同じだと毎回同じ乱数が出てくる)
乱数のシード 整数の乱数 浮動小数点の乱数
839736200 1700997968 0.659561
-117595571 1486822913 0.291075
717184477 -567729758 0.960677
750142485 1419626450 0.103419

1-c. CvPoint2D32fを作って、CvPointに変換する
CvPoint32f (x,y)=123.139999,89.456398 CvPoint (x,y)=123,89

1-d. CvPointを作って、CvPoint2D32fに変換する
CvPoint (x,y)=100,145 CvPoint32f (x,y)=100.000000,145.000000


ソースコードは別館の方に保存してあります。

詳解OpenCVの練習問題が終わったら、Computer Visionの練習問題に取り組みたいと思います。
ではまた。


0 件のコメント:

コメントを投稿