Dengan, m,n = ukuran panjang dan lebar citra
ANALISIS DAN PERANCANGAN SISTEM
3.3 Pseudocode Program
Pseudocode adalah suatu algoritma yang untuk dapat menjelaskannya harus menggunakan bahasa tingkat tinggi. Bahasa tingkat tinggi adalah bahasa yang dimengerti manusia dan dapat digambarkan dengan mudah sehingga dapat dipahami oleh manusia itu sendiri.
3.3.1 Pseudocode Geometric Mean Filter
Pseudocode dari Geometric Mean Filter dapat dilihat pada Tabel 3.20.
Tabel 3.20 PseudocodeGeometric Mean Filter
1. xi ← image.Width yi ← image.Height
2. red←0, green←0, blue←0, hasilred←1, hasilgreen←1, hasilblue←1
3. imagehasil ← (xi, yi) 4. for i ← 0 to yi-2 for j ← 0 to xi-2
for k ← i to i + 2
for l ← j to j + 2
5. red ← image.GetPiksel(l,k).R if (red == 0)
red <- 255
6. green ← image.GetPiksel(l,k).G if (green ==0)
green <- 255
7. blue ← image.GetPiksel(l,k).B if (blue == 0) blue <- 255 8. hasilred ← hasilred*red 9. hasilgreen ← hasilgreen*green 10. hasilblue ← hasilblue*blue endfor endfor 11. redfinal <- hasilred^(1/9) red <- Math.Round(redfinal) greenfinal <- hasilgreen^(1/9) green <- Math.Round(greenfinal) bluefinal <- hasilblue^(1/9) blue <- Math.Round(bluefinal)
12. imagehasil.SetPiksel(j + 1, i + 1, Color.FromArgb(255,red,green,blue) hasilred <- 1 hasilgreen <- 1 hasilblue <- 1 endfor endfor Keterangan :
1. Set nilai xi sebagai lebar image dan set nilai yi sebagai panjang image
2. set nilai red, green, blue, hasilred, hasilgreen, dan hasilblue masing-masing 0. Kemudian set nilai redfinal, greenfinal, dan bluefinal masing-masing 1.
3. Deklarasi variabel imagehasil sebagai bitmap dengan lebar xi dan panjang yi. 4. perulangan i mulai dari 0 sampai dan perulangan j mulai dari 0 sampai
. Setelah itu dilakukan perulangan mulai dari sampai dan perulangan mulai dari sampai .
5. nilai red dari piksel ke . Jika nilai red = 0 maka nilai red = 255.
6. nilai green dari piksel ke Jika nilai green = 0 maka nilai green = 255 7. nilai blue dari piksel ke . Jika nilai blue = 0 maka nilai blue = 255.
8. set nilai variabel hasilred = hasilred red. 9. set nilai variabel hasilgreen = hasilgreen green. 10.set nilai variabel hasilblue = hasilblue blue. 11.set nilai variabel redfinal =
Nilai redfinal tersebut dibulatkan dan dimasukkan ke variabel red.
Set nilai variabel greenfinal = hasilgreen
Nilai greenfinal tersebut dibulatkan dan dimasukkan ke variabel green.
set nilai variable bluefinal = hasilblue .
Nilai bluefinal tersebut dibulatkan dan dimasukkan ke variabel blue.
12. set piksel imagehasil pada posisi dengan nilai red, green, dan
blue.
Nilai hasilred, hasilgreen, dan hasilblue dikembalikan ke 1.
3.3.2 Pseudocode Operator Sobel
Pseudocede dari operator sobel dapat dilihat pada Tabel 3.21.
Tabel 3.21 Pseudocode Operator Sobel
1. sobel original
arr_r [sobel.Width, sobel.Height] arr_g [sobel.Width, sobel.Height] arr_b [sobel.Width, sobel.Height] temp_array[sobel.Width, sobel.Height] 2. for i 1 to sobel.Width – 1 for j 1 to sobel.Height - 1 arr_r original.GetPiksel(i, j).R; arr_g original.GetPiksel(i, j).G; arr_b original.GetPiksel(i, j).B; 3. arr_r
(arr_r[i, j] + arr_g[i, j] + arr_b[i, j]) / 3; endfor
endfor
4. for i 1 to sobel.Width - 1
5. x Math.Abs(1*arr_r[i-1,j-1]+2*arr_r[i- 1,j] + 1*arr_r[i-1,j+1] - arr_r[i+1, j-1] - 2 * arr_r[i+1, j] - arr_r[i + 1, j + 1]) 6. y Math.Abs(1*arr_r[i-1,j-1]+2*arr_r[i,j- 1]+1*arr_r[i+1,j-1]-1*arr_r[i-1,j+1]- 2*arr_r[i,j+1]-1*arr_r[i+1,j+1]) 7. grad Math.Sqrt(x*x+y*y) if grad > 255 grad 255
temp_arraygrad 8.
sobel.SetPiksel(i,j,Color.FromArgb(temp_array[i, j],
temp_array[i, j],temp_array[i,j])
endfor endfor Keterangan :
1. deklarasi variabel sobel sebagai bitmap yang diambil dari image original Deklarasi variabel arr_r, arr_g, arr_b, temp_array sebagai array dengan elemen baris = sobel.width dan kolom = sobel.height.
2. untuk medapatkan warna tiap piksel pada gambar dilakukan perulangan. perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai .
nilai Red diambil dan diletakkan pada arr_r nilai Green diambil dan diletakkan pada arr_g nilai Blue diambil dan diletakkan pada arr_b
3. setelah diambil nilai RGB ditiap piksel dilakukan proses mendapatkan rata- rata 3 layer warna pada piksel.
4. Perulangan untuk proses deteksi tepi.
perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai .
5. Memasukan nilai x dari perkalian rumus matriks sobel x dan nilai piksel pada matriks vertikal.
6. Memasukan nilai y dari perkalian rumus matriks sobel y dan nilai piksel pada matriks horizontal.
7. Menentukan nilai gradient dari akar kuadrat perkalian x dan y pada point 5 dan 6
8. Memasukkan nilai akhir piksel.
3.3.3 Pseudocode Operator Prewitt
Pseudocode dari operator prewitt dapat dilihat pada Tabel 3.22.
Tabel 3.22 Pseudocode Operator Prewitt
1. prewitt original
arr_r [prewitt.Width, prewitt.Height] arr_g [prewitt.Width, prewitt.Height] arr_b [prewitt.Width, prewitt.Height] temp_array[prewitt.Width, prewitt.Height] 2. for i 1 to prewitt.Width – 1 for j 1 to prewitt.Height - 1 arr_r original.GetPiksel(i, j).R; arr_g original.GetPiksel(i, j).G; arr_b original.GetPiksel(i, j).B;
3. arr_r (arr_r[i, j] + arr_g[i, j] + arr_b[i, j]) / 3; endfor endfor 4. for i 1 to prewitt.Width - 1 for j 1 to prewitt.Height-1 5. x Math.Abs(1*arr_r[i-1,j-1]+1*arr_r[i- 1,j] + 1*arr_r[i-1,j+1] - 1 * arr_r[i+1, j-1] - 1* arr_r[i+1, j] - 1*arr_r[i + 1, j + 1]); 6. y Math.Abs(1*arr_r[i-1,j-1]+1*arr_r[i,j- 1]+1*arr_r[i+1,j-1]-1*arr_r[i-1,j+1]-1*arr_r[i,j+1]- 1*arr_r[i+1,j+1]) 7. grad Math.Sqrt(x*x+y*y) if grad > 255 grad 255
temp_arraygrad
8. prewitt.SetPiksel(i,j,Color.FromArgb(temp_array[i, j],
temp_array[i, j],temp_array[i,j]) endfor
endfor
Keterangan :
1. deklarasi variabel prewitt sebagai bitmap yang diambil dari image original Deklarasi variabel arr_r, arr_g, arr_b, temp_array sebagai array dengan elemen baris = prewitt.width dan kolom = prewitt.height.
2. untuk medapatkan warna tiap piksel pada gambar dilakukan perulangan. perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai .
nilai Red diambil dan diletakkan pada arr_r nilai Green diambil dan diletakkan pada arr_g nilai Blue diambil dan diletakkan pada arr_b
3. setelah diambil nilai RGB ditiap piksel dilakukan proses mendapatkan rata- rata 3 layer warna pada piksel.
4. Perulangan untuk proses deteksi tepi.
perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai .
5. Memasukan nilai x dari perkalian rumus matriks prewitt x dan nilai piksel pada matriks vertikal.
6. Memasukan nilai y dari perkalian rumus matriks prewitt y dan nilai piksel pada matriks horizontal.
7. Menentukan nilai gradient dari akar kuadrat perkalian x dan y pada point 5 dan 6
8. Memasukkan nilai akhir piksel.
3.3.4 Pseudocode Operator Robert
Pseudocode dari operator robert dapat dilihat pada Tabel 3.23.
Tabel 3.23 Pseudocode Operator Robert
1. robert original
arr_r [robert.Width, robert.Height] arr_g [robert.Width, robert.Height] arr_b [robert.Width, robert.Height]
temp_array[robert.Width, robert.Height] 2. for i 1 to robert.Width – 1 for j 1 to robert.Height - 1 arr_r original.GetPiksel(i, j).R; arr_g original.GetPiksel(i, j).G; arr_b original.GetPiksel(i, j).B;
3. arr_r (arr_r[i, j] + arr_g[i, j] + arr_b[i, j]) / 3; endfor endfor 4. for i 1 to robert.Width - 1 for j 1 to robert.Height-1 5. x Math.Abs(arr_r[i, j] - arr_r[i + 1, j + 1]) 6. y Math.Abs(arr_r[i + 1, j] - arr_r[i, j + 1]) 7. grad = x+y; if grad > 255 grad 255
temp_arraygrad
8. robert.SetPiksel(i,j,Color.FromArgb(temp_array[i, j], temp_array[i, j],temp_array[i,j]) endfor
endfor
Keterangan :
1. deklarasi variabel robert sebagai bitmap yang diambil dari image original Deklarasi variabel arr_r, arr_g, arr_b, temp_array sebagai array dengan elemen baris = robert.width dan kolom = robert.height.
2. untuk medapatkan warna tiap piksel pada gambar dilakukan perulangan. perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai .
nilai Red diambil dan diletakkan pada arr_r nilai Green diambil dan diletakkan pada arr_g nilai Blue diambil dan diletakkan pada arr_b
3. setelah diambil nilai RGB ditiap piksel dilakukan proses mendapatkan rata- rata 3 layer warna pada piksel.
perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai .
5. Memasukan nilai x dari perkalian rumus matriks robert x dan nilai piksel pada matriks vertikal.
6. Memasukan nilai y dari perkalian rumus matriks robert y dan nilai piksel pada matriks horizontal.
7. Menentukan nilai gradient dari akar kuadrat perkalian x dan y pada point 5 dan 6
8. Memasukkan nilai akhir piksel.