Pada dasarnya citra adalah fungsi 2D, sehingga transformasi fourier yang digunakan adalah transformasi fourier 2D. Langkah-langkah untuk membuat program transformasi fourier pada citra menggunakan Visual Basic adalah sebagai berikut :
1. Buat Project baru dengan menekan <Ctrl><Z>, sehingga muncul tampilan project baru dengan form kosong yang kemudian buatlah form seperti gambar berikut
Gambar 1. Form untuk proses transformasi fourier
2. Isilah property pada setiap obyek dan form sebagai berikut:
3. Click bagian form yang kosong, dan isikan program inisialisasi proses berikut ini:
Dim n1, n2, m1, m2 As Integer
Dim x(400, 400) As Integer
Dim xr(400, 400), xi(400, 400) As Single
Private Sub Form_Load()
m1 = 12: m2 = 12
End Sub
4. Click Command1, dan isikan program untuk proses perhitungan Transformasi Fourier menggunakan DFT:
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
5. Click Command2, dan isikan program untuk proses perhitungan magnitude dan phase berikut ini:
Private Sub Command2_Click()
Dim xa(100, 100), xg(100, 100) As Integer
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
6. Click Command3, dan isikan program untuk proses keluar dari program berikut ini:
Private Sub Command3_Click()
Unload Me
End Sub
7. Simpan form ini dengan nama formFourier seperti nama formnya, dan simpan projectnya dengan nama Project Fourier.
Contoh hasil transformasi fourier adalah sebagai berikut :
Gambar 2. Contoh transformasi fourier dengan 12×12
Untuk mengubah ukuran window dari hasil transformasi fourier dapat dilakukan dengan mengganti nilai m1 dan m2 pada fungsi form load.
Gambar 3. Contoh transformasi fourier dengan 9×9
