Changes between Version 2 and Version 3 of HowTo/BoostStudy2


Ignore:
Timestamp:
Sep 11, 2010, 2:55:26 PM (14 years ago)
Author:
村山 俊之
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HowTo/BoostStudy2

    v2 v3  
    7777   * でた。 VS2010パネェ
    7878
     79
     80== Boost.GIL 画像処理入門 ==
     81
     82Generic Image Library
     83
     84=== 目標 ===
     85
     86(初歩的な) 動体検出ができるようになる!
     87
     88=== GIL とな? ===
     89
     90 * 画像データ保持用コンテナとイテレータ。
     91
     92=== 前提知識 ===
     93
     94 * 色空間
     95   * RGB/RGBA ... o
     96   * HSV ... x
     97   * YCbCr ... x
     98   * CMY/CMYK ... o
     99   * L*a*b* ... x
     100   * Grayscale ... o
     101   * etc...
     102 * 種類
     103   * ベクタ ... x
     104   * ラスタ ... o
     105
     106 * 画像の構造
     107   * ピクセルの集まり
     108   * データ構造
     109     * データの持ち方は多様。配列を色別に分けたり分けなかったり…
     110 * 動画像の構造
     111   * コマ送り
     112
     113=== 基礎の基礎 ===
     114
     115 * 画像の入出力
     116   * JPEG, PNG, TIFF をサポート
     117{{{
     118rgb8_image_t img;
     119jpeg_read_image("hoge.jpg", img); // 入力
     120jpeg_write_view("fuga.jpg", view(img)); // 出力
     121}}}
     122 * 型宣言は ColorSpace, BitDepth, ClassType の組み合わせで表現
     123   * ColorSpace: rgb, bgr, cmyk, ...
     124   * BitDepth: 8, 8s, 16, 16s, 32f, ...
     125   * ClassType: image, view, loc, pixcel, ptr, ...
     126 * 画像へのアクセス
     127   * 直接 Image は操作しない。 Image View を使用
     128{{{
     129jpeg_read_image("hoge.jpg", img); // 読み込み
     130step1 = view(img); // View を取得
     131step2 = subimage_view(step1, 200, 300, 150, 150); // 切り取り
     132step3 = color_converted_view<rgb8_view_t, gray8_pixel_t>(step2); // グレースケール化
     133step4 = rotated180_view(step3); // 回転
     134step5 = subsampled_view(step4, 2, 1);
     135jpeg_write_view("hoge_transform.jpg", step5);
     136}}}
     137 * ピクセルへのアクセス
     138   * image_view::operator()
     139   * Iterator
     140     * 画像の上から下に向かって水平行ごとに走査する。
     141
     142=== 動体検出アルゴリズム作成 ===
     143
     144フレーム間の差分を引くところ
     145
     146 * グレースケール化した画像の同位置ピクセルを引き算するだけ
     147
     148=== 参考情報 ===
     149
     150 * http://sites.google.com/site/twinkleofsilence/
     151 * http://sssm.sakura.ne.jp/dev/gil.html
     152 * http://sourceforge.net/projects/stllcv/
     153
     154=== 質疑応答 ===
     155
     156 * ビューを 1 から作ることは可能?
     157   * 作れるけど簡単じゃないかも…
     158 * ビューへの操作をイメージに固定することは可能?
     159   * イメージへコピーするメソッドがある
     160 * 色空間の独自実装は可能?
     161   * 比較的簡単らしい
     162 * 型名が Boost っぽくない
     163   * 実は typedef 。裏ではすんげー長いテンプレート引数が…
     164 * ビューのフィルタ操作による変換コストは?
     165   * 色空間の変換を除けばコストは 0 のハズ
     166 * 中身が const な image を作るには
     167   * rgb8c_image_t のように BitDepth のうしろに "c" が入った型名を使う
     168   * 関数が view を受け取るときは const 参照で受け取ることが推奨されている。この const は view の設定が const なのであって、画像自体が const になるわけではない。