0

以下のように 1 次元複素画像 "c" を作成し、ShowImage を使用して表示しました。私の質問は、Y 軸を理解する方法です。
ピクセル 1 (30+40i) の場合、Y 軸の値は log(modulus(30+40i))=3.9 を表しているように見えます。しかし、ピクセル 3 (0.3+0.4i) ではこのルールに従っていないようです。

ComplexImage c := ComplexImage("c", 8, 3, 1) 
c[0, 0, 1, 1] = complex(30, 40)
c[0, 1, 1, 2] = complex(3, 4)
c[0, 2, 1, 3] = complex(0.3, 0.4)
ShowImage(c)

ここに画像の説明を入力

4

2 に答える 2

1

実際にはスクリプトに関する質問ではありませんが、非常に興味深い観察結果です。プロットまたは表示された値が"Log of modulus"実際に行っていることがわかります。

log( modulus( C ) + 1 )

また、script-commandは自然対数log()を取っていることを知っておくことが重要です。コマンドを実行するには、基数 10 にします。log10()

complexNumber c1 = complex(30,40)
complexNumber c2 = complex(3,4)
complexNumber c3 = complex(0.3,0.4)

result("\n Complex values:\n" )
result( "c1 = \t"+c1+"\n")
result( "c2 = \t"+c2+"\n")
result( "c3 = \t"+c3+"\n")

result("\n Modulus values:\n" )
result( "c1 = \t"+modulus(c1)+"\n")
result( "c2 = \t"+modulus(c2)+"\n")
result( "c3 = \t"+modulus(c3)+"\n")

result("\n Log of Modulus values:\n" )
result( "c1 = \t"+log10(modulus(c1))+"\n")
result( "c2 = \t"+log10(modulus(c2))+"\n")
result( "c3 = \t"+log10(modulus(c3))+"\n")

result("\n Log of Modulus + 1 values:\n" )
result( "c1 = \t"+log(modulus(c1) + 1)+"\n")
result( "c2 = \t"+log(modulus(c2) + 1)+"\n")
result( "c3 = \t"+log(modulus(c3) + 1)+"\n")

これにより、以下が得られます。

 Complex values:
c1 =    30 + 40 i
c2 =    3 + 4 i
c3 =    0.3 + 0.4 i

 Modulus values:
c1 =    50
c2 =    5
c3 =    0.5

 Log of Modulus values:
c1 =    1.69897
c2 =    0.69897
c3 =    -0.30103

 Log of Modulus +1 values:
c1 =    3.93183
c2 =    1.79176
c3 =    0.405465
于 2016-05-01T14:20:30.023 に答える
0
compleximage ComplexImage( string title, number size,
number width, number height )

幅と高さはピクセル単位です

number x = 512, y = 512
compleximage myImage := ComplexImage( "My Image", 16, x, y )
myImage = complex( irow, icol )
ShowImage( myImage )

この例では、「My Image」というタイトルの 512 x 512 ピクセル、16 バイトの複合イメージを作成します。次に、画像内のすべてのピクセルを式 complex( irow, icol ) に設定します。この式は、実数部が各ピクセルの行番号であり、虚部が各ピクセルの列番号である複雑な画像式です。最後に画像を表示します。

于 2016-05-01T11:31:11.667 に答える