- 締切済み
RDS…白黒のノイズ画像が作りたい
プログラミング初心者です。 心理学の実験のために、RDS…Rondom Dot Stereogramを作成したいと思っています。 白黒のドットがランダムに発生していて、画面をびっしりおおっている画像です。 いろいろなページでフリーソフトが提供されていましたが、たとえば、それぞれのドットの色の濃さを決定している計算?や全体における割合?分布?のような理論(というかプログラミング??)がわからず、 実験に使うには謎が多すぎるかな と感じています。 そこで、自分でノイズ画像を作りたいのですが、それはどのようなソフトを使えばいいのでしょうか??そして、自分でプログラミングする場合、記述内容を初心者が自力でやるのは難しいでしょうか?? (漠然とした質問ですみません…) Mathematicaというものの3次元関数を参考にした という記述は見たのですが、それ以外にも、作成する方法がありましたら教えてください。 (ちなみに、Photo shopでは作成済みです)
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- koma1000nin
- ベストアンサー率30% (342/1133)
白地の矩形内に一様な黒点を打つには、乱数発生関数を用います。例えば、C言語の場合はrand()という関数があり、この関数を呼び出す毎に0≦r<1.0の範囲の小数(一様乱数)がひとつだけ返されます。他の言語でも似たようなものです。 この小数をどのように扱うかというと、横150×縦200の矩形内に一様な黒点を打つときは、 x=150*rand() y=200*rand() を求め、その整数値のペア(x,y)を座標とする矩形内に黒点を打ちます。この作業を必要回数繰り返して矩形内を黒点で塗りつぶして行きます。 ただし乱数はある程度の大きさの周期で繰り返す性質を持っていますので、あまり広い面積を一気にカバーするのは避けて、100×100ドット程度の矩形に分割しておき、各々の矩形を黒点で埋めていけば自然な黒点の集まりが得られます。濃淡については繰り返し回数により調整します。 また、半径Rの円内を一様な黒点で埋めたければ、次のようにします。 x=R*rand() y=R*rand() x^2 + y^2 ≦ R^2 … (1) 求めた整数の組(x,y)がを(1)の条件を満たさないときは再び(x,y)の組を求め直すか、xまたはyのいずれか一方を求め直します。 これらの操作を参考にして、一定の分布に従う黒点の集まりを表現できます。
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
RDSのドットをよく見ると、縦にはランダムですが、横には完全なランダムではなく、何ドットかごとに同じパターンの繰り返しになっていることが分かります。ドットを完全にランダムに作成できるのは、RDSの高さ×この「繰り返し」の幅の長方形の範囲内になります。 ランダムなドットを発生させる範囲が決まれば、求める濃さから白/黒ドットの生成割合を求め、その割合に応じて長方形の範囲内に白/黒ドットを1ドットずつ埋めていくことができます。 この「埋めていく方法」には「完全にランダムにする方法」(白/黒ドットの生成割合から生成確率を求め、その確率に従ってドットを生成して埋めていく方法)や「特定のパターンで埋めていく方法」があります。 こうして生成した「ランダムドットの長方形」と高さ情報を合算して一枚のRDSを生成するプログラムがない場合、そのようなプログラムもまた別途作成する必要があります。 どちらも、初心者が作成するプログラムとしてはちょっと難易度が高い感じですね。
お礼
お返事が非常におそくなってしまいすみません。 ランダムドットの仕組みを((なんとなくですが)知ることができました☆ 難易度は高そうですね…というか見当がつきません。。無理かな… ご回答、ありがとうございました!
お礼
お返事が大変遅くなってしまいすみません。 自分で作成するのはあきらめてしまったのですが、勉強になりました!! ご回答、ありがとうございました☆