• Tidak ada hasil yang ditemukan

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_arraygrad 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_arraygrad

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_arraygrad

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.

Dokumen terkait