Что означает ось Y при отображении сложного изображения с помощью ShowImage()?

Я сделал одномерное сложное изображение «с», как показано ниже, и использовал 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)

введите здесь описание изображения


person user3688533    schedule 01.05.2016    source источник


Ответы (2)


Хотя на самом деле это не скриптовый вопрос, очень интересное наблюдение! Оказывается, что отображаемые или отображаемые значения для "Log of modulus" действительно делают:

log( modulus( C ) + 1 )

И важно знать, что команда скрипта log() принимает натуральный логарифм. Для команды log10() нужно сделать единицу с основанием 10.

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
person BmyGuest    schedule 01.05.2016
comment
Причина этого, скорее всего, заключается в том, чтобы избежать отрицательных значений на этом дисплее. основная цель отображения логарифма модуля связана с использованием БПФ в качестве прокси для изображений дифракционной картины. Цель состояла (/была) в том, чтобы изображения были похожи на записанные дифракционные картины на пленке. - person BmyGuest; 01.05.2016

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 )

В этом примере создается сложное изображение размером 512 x 512 пикселей размером 16 байт с заголовком «Мое изображение». Затем он присваивает всем пикселям изображения комплекс выражений ( irow, icol ). Это выражение представляет собой сложное выражение изображения, где действительная часть — это номер строки каждого пикселя, а мнимая часть — это номер столбца каждого пикселя. Наконец он показывает изображение.

person Aakash Kamble    schedule 01.05.2016