Rabu, 21 April 2010

Transformasi Fourier pada Image Processing


          Penerapan Transformasi Fourier pada Image Processing dapat dicontohkan pada cuplikan program VB berikut ini.

Langkah 1 : Buka program VB, kemudian buat property - property pada tabel berikut ini ke dalam form

Langkah 2 : Kemudian masukkan Program berikut ini kedalam code VB sesuai dengan Property di atas.




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

Langkah 3 : Run Program tersebut, maka hasilnya akan seperti pada gambar di bawah ini.

Sebelum


Sesudah


Langkah 4 : Done 
To be Continued....


Tidak ada komentar:

Posting Komentar