Transformasi Fourier

Di bawah ini adalah contoh penggunaan transformasi fourier pada pengolahan citra. Bahasa pemrograman yang dipakai adalah Visual Basic 6.0. Tampilan awal program terlihat seperti gambar di bawah ini :

Hasil dari transformasi fourier dan phase magnitude dapat di lihat pada gambar di bawah ini :

Listing program seperti di bawah ini:

Dim n1, n2, m1, m2 As Single
Dim x(400, 400) As Single
Dim xr(400, 400), xi(400, 400) As Single
Private Sub Command1_Click()
n1 = 0
For i = 1 To Picture1.ScaleWidth Step 15
n1 = n1 + 1
n2 = 0
For j = 1 To Picture1.ScaleHeight Step 15
warna = Picture1.Point(i, j)
r = warna And RGB(255, 0, 0)
g = Int((warna And RGB(0, 255, 0)) / 256)
b = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256)
n2 = n2 + 1
x(n1, n2) = Int((r + g + b) / 3)
Picture1.PSet (i, j), RGB(x(n1, n2), x(n1, n2), x(n1, n2))
Next j
Next i
Picture2.ScaleHeight = m1 + 1
Picture2.ScaleWidth = m2 + 1
Picture3.ScaleHeight = m1 + 1
Picture3.ScaleWidth = m2 + 1
For i = 1 To m1
For j = 1 To m2
fr = 0
fi = 0
For k1 = 1 To n1
For k2 = 1 To n2
fr = fr + x(k1, k2) * Cos(6.28 * (i * k1 / m1 + j * k2 / m2))
fi = fi - x(k1, k2) * Sin(6.28 * (i * k1 / m1 + j * k2 / m2))
Next k2
Next k1
w = 255 * Abs(fr) / (n1 * n2)
Picture2.Line (i - 0.5, j - 0.5)-(i + 0.5, j + 0.5), RGB(w, w, w), BF
w = 255 * Abs(fi) / (n1 * n2)
Picture3.Line (i - 0.5, j - 0.5)-(i + 0.5, j + 0.5), RGB(w, w, w), BF
xr(i, j) = fr
xi(i, j) = fi
Next j
Next i
End Sub

Private Sub Command2_Click()
Dim xa(100, 100), xg(100, 100) As Single
Picture4.ScaleHeight = m1 + 1
Picture4.ScaleWidth = m2 + 1
Picture5.ScaleHeight = m1 + 1
Picture5.ScaleWidth = m2 + 1
xam = 0
xgm = 0
For i = 1 To m1
For j = 1 To m2
xa(i, j) = (xr(i, j) ^ 2 + xi(i, j) ^ 2) ^ 0.5
xg(i, j) = xi(i, j) / xr(i, j)
If xa(i, j) > xam Then xam = xa(i, j)
If Abs(xg(i, j)) > xgm Then xgm = Abs(xg(i, j))
Next j
Next i
For i = 1 To m1
For j = 1 To m2
w = Int(256 * xa(i, j) / xam)
Picture4.Line (i - 0.5, j - 0.5)-(i + 0.5, j + 0.5), RGB(w, w, w), BF
w = Int(256 * Abs(xg(i, j)) / xgm)
Picture5.Line (i - 0.5, j - 0.5)-(i + 0.5, j + 0.5), RGB(w, w, w), BF
Next j
Next i
End Sub

Private Sub Command3_Click()
Unload Me
End Sub
Private Sub Form_Load()
m1 = 16: m2 = 16
End Sub

Advertisement

1 Comment

Filed under All About IT & Telecom

One Response to Transformasi Fourier

  1. b43r

    wah nice info ni..klo sempet nanti saya coba :D

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s