ノイズを発生させるために、コンピュータプログラムの3Dボリュームからランダムな2Dスライスを取得したいと思います。回転行列を使用することにしました。これは、回転グループSO(3)のメンバーである必要があることを理解しています。このグループの均一にランダムなメンバーを作成するにはどうすればよいですか?
2 に答える
4
0 から 1 の間の3 つのランダム値 u 1、u 2、および u 3を選択します。
一様ランダム四元数は次の式で与えられます。
w = sqrt(1 - u 1 )sin(2pi*u 2 )
x = sqrt(1 - u 1 )cos(2pi*u 2 )
y = sqrt(u 1 )sin(2pi*u 3 )
z = sqrt(u 1 )cos(2pi*u 3 )
次に、次の式を使用して適切な回転行列を生成できます。
| 2 2 |
| 1 - 2y - 2z 2xy - 2zw 2xz + 2yw |
| |
| 2 2 |
M = | 2xy + 2zw 1 - 2x - 2z 2yz - 2xw |
| |
| 2 2 |
| 2xz - 2yw 2yz + 2xw 1 - 2x - 2y |
| |
于 2012-05-24T22:14:54.503 に答える
1
各軸として 3 つの独立した確率変数の構成によって形成される、ランダムな 3D ベクトルを描画できます。次に、このベクトルをランダムな 2D スライスの法線ベクトルと、その 2D スライスの原点からの距離として定義できます。私は、(正式な証明はありませんが) このアプローチが可能な 2D スライスに対して均一な分布を与えるはずであることを確信しています (前のステートメントは基本的に非公式です)。
編集:考え直して、原点からの 2D スライスの距離を表す独立変数を描画する必要があります。そうしないと、原点から一定の距離にある可能性が高い 2D スライスの分布ができてしまいます。
于 2012-05-24T21:10:45.580 に答える