ランダムドットステレオグラムアプリ - その8 [ランダムドットステレオグラムアプリ]
この週末に横浜のうちに帰っていて、先週までの記述を見返していて不満を持った。ぐちゃぐちゃだわ。考えながら書いてるにしても、なんのためにわざわざ式を使って書いてるのか、これでは意味がない。式で書くのは、そのほうが簡潔なのに表現力が高いからであって、簡単にはなってないわ、わかりにくいわ、で悪い見本のようなものだと思い至った。
ということで、昨日までのところをチャラにしてアルゴリズム整理の最初に戻る。
また、テクスチャタイルT0(p, q)は画像のような、色や明るさの配列であって同様に であるとする。
そして最終的なステレオグラムをS(p, q)とすると定義域は でなければならない。図-7参照。 当然S(p, q)の要素はT(p, q)の要素と同じ物理量を表す(実装上は8ビットグレーやARGBなどの同じ型である)。
そしてそのすぐ右側にT1(p, q)、さらにT2(p, q) ...Tn(p, q)を、S(p, q)の幅いっぱいになるまで配置する。また左側にT−1(p, q) ... T−n(p, q)を配置する。このT0以外のTiをh(p, q)からT0(p, q)を使って決定することが目的である。
まえはαというパラメータを別にしていたが、これも となるように規格化する。与えられたαの値がこれを超えるときは、この範囲に入るように制限する(実装上はユーザにアラートを表示するなりなんなりして、値を修正する)。
ということで、昨日までのところをチャラにしてアルゴリズム整理の最初に戻る。
1.4 アルゴリズムの整理
行き当たりばったりに書いてきた具体的なアルゴリズムを、ノーテーションの整理も含めて見通しが良いように全部やりなおす。1.4.1 与えられた量と定義域のまとめ
シングルイメージランダムドットステレオグラム(Single Image Random Dot Stereogram、SIRDS)を自動生成するアルゴリズムをまとめる。与えられたエレベーションマップをh(p, q)とする。ここで というような整数の範囲で定義されているとする。また、テクスチャタイルT0(p, q)は画像のような、色や明るさの配列であって同様に であるとする。
そして最終的なステレオグラムをS(p, q)とすると定義域は でなければならない。図-7参照。 当然S(p, q)の要素はT(p, q)の要素と同じ物理量を表す(実装上は8ビットグレーやARGBなどの同じ型である)。
1.4.2 配置
まず、S(p, q)の中央にT0(p, q)を配置する。そしてそのすぐ右側にT1(p, q)、さらにT2(p, q) ...Tn(p, q)を、S(p, q)の幅いっぱいになるまで配置する。また左側にT−1(p, q) ... T−n(p, q)を配置する。このT0以外のTiをh(p, q)からT0(p, q)を使って決定することが目的である。
1.4.3 規格化
まずh(p, q)を規格化した を作る。これは最小値が0で最大値が1になるようにh(p, q)を線形変換したものとする。まえはαというパラメータを別にしていたが、これも となるように規格化する。与えられたαの値がこれを超えるときは、この範囲に入るように制限する(実装上はユーザにアラートを表示するなりなんなりして、値を修正する)。
1.4.4 ノーテーションの簡略
これ以降、縦方向を指定する変数qを省略する。ステレオグラムを作るうえで上下の関係はなく、つねに同じqが現れるだけなので という意味だと思って読んでほしい。2011-07-19 23:22
nice!(0)
コメント(0)
トラックバック(0)
コメント 0