Professional Documents
Culture Documents
Reduksi Noise
Reduksi Noise dengan Filter Rata-rata
Desain Form
Listing program
Dim wt(400, 400) As Integer
Dim Nfilter As Integer
Dim h() As Single
Private Sub Command1_Click()
If Option1 Then
Nfilter = 3
ElseIf Option2 Then
Nfilter = 5
Else
Nfilter = 7
End If
ReDim h(Nfilter + 1, Nfilter + 1) As Single
'Randomize Timer
For i = 1 To Nfilter
For j = 1 To Nfilter
h(i, j) = 1 / (Nfilter ^ 2)
Next j
Next i
probNoise = Val(Text1)
dx = 0
sx = 0
n1 = 0
For i = 1 To Picture4.ScaleWidth Step 15
n1 = n1 + 1
n2 = 0
For j = 1 To Picture4.ScaleHeight Step 15
warna = Picture4.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)
wx = Int((r + g + b) / 3)
n2 = n2 + 1
wt(n1, n2) = wx
Picture4.PSet (i, j), RGB(wx, wx, wx)
'Pembangkitan Noise Gaussian
'Menggunakan metode Rejection
sw = 0
While sw = 0
x = 2 * Rnd - 1
y = Rnd
If y < Exp(-x ^ 2) Then
sw = x
End If
Wend
wx1 = Abs(wx + sw * 255 * probNoise)
If wx1 > 255 Then wx1 = 255
Picture2.PSet (i, j), RGB(wx1, wx1, wx1)
nx = nx + Abs(wx1 - wx)
sx = sx + Abs(wx)
Next j
Next i
snr = 10 * Log(sx / nx) / Log(10)
Label1.Caption = snr
End Sub
Gray
1 To Picture4.ScaleWidth Step 15
+ 1
j = 1 To Picture4.ScaleHeight Step 15
warna = Picture2.Point(i, j)
r = warna And RGB(255, 0, 0)
g = Int((warna And RGB(0, 255, 0)) / 256)
Reduksi Noise
Reduksi Noise dengan Filter Gaussian
Desain Form
Listing Program
Dim wt(400, 400) As Integer
Dim h() As Single
Dim Nfilter As Integer
Nfilter = 5
Else
Nfilter = 7
End If
ReDim h(Nfilter + 1, Nfilter + 1) As Single
Randomize Timer
'Nfilter = 7
s = 0.5
m = Int(Nfilter / 2) + 1
sh = 0
For i = 1 To Nfilter
t1 = (1 - m) / (m - 1)
For j = 1 To Nfilter
t2 = (j - m) / (m - 1)
h(i, j) = Exp(-(t1 ^ 2 + t2 ^ 2) / (2 * s ^ 2)) / (s ^ 2 * 3.14 ^ 0.5)
sh = sh + h(i, j)
Next j
Next i
For i = 1 To Nfilter
For j = 1 To Nfilter
h(i, j) = h(i, j) / sh
Next j
Next i
probNoise = Val(Text1)
dx = 0
sx = 0
n1 = 0
For i = 1 To Picture4.ScaleWidth Step 15
n1 = n1 + 1
n2 = 0
For j = 1 To Picture4.ScaleHeight Step 15
warna = Picture4.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)
wx = Int((r + g + b) / 3)
n2 = n2 + 1
wt(n1, n2) = wx
Picture4.PSet (i, j), RGB(wx, wx, wx)
'Pembangkitan Noise Gaussian
'Menggunakan metode Rejection
sw = 0
While sw = 0
x = 2 * Rnd - 1
y = Rnd
If y < Exp(-x ^ 2) Then
sw = x
End If
Wend
wx1 = Abs(wx + sw * 255 * probNoise)
If wx1 > 255 Then wx1 = 255
Picture2.PSet (i, j), RGB(wx1, wx1, wx1)
nx = nx + Abs(wx1 - wx)
sx = sx + Abs(wx)
Next j
Next i
snr = 10 * Log(sx / nx) / Log(10)
Label1.Caption = snr
End Sub
sx = sx + Abs(wt(i, j))
Next j
Next i
snr = 10 * Log(sx / nx) / Log(10)
Label2.Caption = snr
End Sub
Listing program
Dim wx(500, 500) As Integer
Dim M As Long, N As Long
1 To picAsli.Width Step 15
M + 1
0
j = 1 To picAsli.Height Step 15
Warna = picAsli.Point(i, j)
r = Warna And RGB(255, 0, 0)
g = (Warna And RGB(0, 255, 0)) \ 256
b = ((Warna And RGB(0, 0, 255)) \ 256) \ 256
N = N + 1
x = (r + g + b) \ 3
wx(M, N) = x
picCapture.PSet (i, j), RGB(x, x, x)
Next
Next
End Sub
10
Listing program
Dim
Dim
Dim
Dim
1 To picAsli.Width Step 15
M + 1
0
j = 1 To picAsli.Height Step 15
Warna = picAsli.Point(i, j)
r = Warna And RGB(255, 0, 0)
g = (Warna And RGB(0, 255, 0)) \ 256
b = ((Warna And RGB(0, 0, 255)) \ 256) \ 256
N = N + 1
x = (r + g + b) \ 3
wx(M, N) = x
picCapture.PSet (i, j), RGB(x, x, x)
Next
Next
11
End Sub
12
Listing Program
Dim
Dim
Dim
Dim
1 To picAsli.Width Step 15
M + 1
0
j = 1 To picAsli.Height Step 15
Warna = picAsli.Point(i, j)
r = Warna And RGB(255, 0, 0)
g = (Warna And RGB(0, 255, 0)) \ 256
b = ((Warna And RGB(0, 0, 255)) \ 256) \ 256
N = N + 1
x = (r + g + b) \ 3
wx(M, N) = x
picCapture.PSet (i, j), RGB(x, x, x)
Next
Next
13
End Sub
14
Listing Program
Dim
Dim
Dim
Dim
1 To picAsli.Width Step 15
M + 1
0
j = 1 To picAsli.Height Step 15
Warna = picAsli.Point(i, j)
r = Warna And RGB(255, 0, 0)
g = (Warna And RGB(0, 255, 0)) \ 256
b = ((Warna And RGB(0, 0, 255)) \ 256) \ 256
N = N + 1
x = (r + g + b) \ 3
wx(M, N) = x
picCapture.PSet (i, j), RGB(x, x, x)
Next
Next
15
End Sub
16