Analisis Proses Deteksi Tepi dengan Metode Morphologi

⎣ ⎢ ⎢ ⎢ ⎡ 3 1 6 2 3 5 15 9 4 6 6 1 10 7 5 8 3 8 8 5 2 5 1 9 4⎦ ⎥ ⎥ ⎥ ⎤ ⎣ ⎢ ⎢ ⎢ ⎡ 27 36 34 24 24 24 15 15 18 17 21 10 16 14 22 10 8 20 9 20 13 20 25 27 26⎦ ⎥ ⎥ ⎥ ⎤

3.1.3.6 Analisis Proses Deteksi Tepi dengan Metode Morphologi

Berikut ini merupakan contoh penggunaan metode Morphologi. Dimisalkan terdapat suatu matriks citra input 5x5 : ⎣ ⎢ ⎢ ⎢ ⎡ 3 1 6 2 3 5 15 9 4 6 6 1 10 7 5 8 3 8 8 5 2 5 1 9 4⎦ ⎥ ⎥ ⎥ ⎤ Selanjutnya matriks tersebut dihitung dengan menggunakan kernel 3 x 3yaitu : Dx,y = maks � 0, � 1, � 2 … � 8 ; Ex,y = min � 0, � 1, � 2 … � 8 ; T = Dx,y - Ex,y Keterangan: Dx, y = Dilasi pada titik x, y Ex, y = Erosi pada titik x, y T = Deteksi Tepi. � � 1 � 2 � 7 �, � � 3 � 6 � 5 � 4 Perhitungan dimulai pada koordinat D 1, 1 dan E1, 1 dan dilakukan dengan mengambil matriks 3x3 dari matriks tetangga piksel yang akan direduksi. Untuk dapat melakukan operasi perhitungan pada koordinat 1,1 diberikan boundary matrik citra dengan nilai 0. Perhitungan ini dilakukan pada setiap nilai piksel pada matriks citra. Contoh penggunaan operator Morphologi yaitu dilasi dan erosi untuk deteksi tepidapat dilihat seperti di bawah ini: ⎣ ⎢ ⎢ ⎢ ⎡ 3 1 6 2 3 5 17 9 4 6 6 1 10 7 5 8 3 8 8 5 2 5 1 9 4 ⎦ ⎥ ⎥ ⎥ ⎤ ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 3 1 5 15 6 2 3 9 4 6 6 1 8 2 3 5 10 7 5 8 1 8 9 5 4 0⎦ ⎥ ⎥ ⎥ ⎥ ⎤ D1,1= maks 0,0,0,15,1,6,0,0,3 = 15 E1,1 = min 0,0,0,15,1,6,0,0,3 = 0 T1,1 = 15 – 0 =15 D1,2= maks 0,0,0,9,10,1,6,3,15 = 15 E1,2 = min 0,0,0,9,10,1,6,3,15 = 0 T1,2 = 15 – 0 = 15 D1,3= maks 0,0,0,2,4,9,15,1,6 = 15 E1,3 = min 0,0,0,2,4,9,17,1,6 = 0 T1,3 = 15 – 0 = 15 D1,4= maks 0,0,0,3,2,4,9,6,2 = 9 E1,4 = min 0,0,0,3,2,4,9,6,2 = 0 T1,4 = 9 – 0 = 9 D1,5= maks 0,0,0,0,0,6,4,2,3 = 6 E1,5 = min 0,0,0,0,0,6,4,2,3 = 0 T1,5 = 6 - 0 = 6 D2,1 = maks 0,3,1,15,1,6,0,0,5 = 15 E2,1 = min 0,3,1,15,1,6,0,0,5 = 0 T2,1 = 15 – 0 = 15 D2,2= maks 3,1,6,9,10,1,6,5,15 = 15 E2,2 = min 3,1,6,9,10,1,6,5,15 = 1 T2,2 = 15 – 1 = 14 D2,3= maks 1,6,2,4,7,10,1,2,9 = 10 E2, 3= min 1,6,2,4,7,10,1,2,9 = 1 T2,3= 10 – 1 = 9 D2,4= maks 6,2,3,6,5,7,10,9,4 = 10 E2,4= min 6,2,3,6,5,7,10,9,4 = 2 T2,4= 10 - 2 = 8 D2,5= maks 2,3,0,0,0,5,7,4,6 = 7 E2,5 = min 2,3,0,0,0,5,7,4,6 = 0 T2,5 = 7 - 0 = 7 D3,1 = maks 0,5,15,1,3,8,0,0,5 = 15 E3,1 = min 0,5,15,1,3,8,0,0,5 = 0 T3,1 = 15 – 0 = 15 D3,2= maks 5,2,9,10,8,3,8,6,1 = 10 E3,2= min 5,2,9,10,8,3,8,6,1 = 1 T3,2= 10 – 1 = 9 D3,3= maks 2,9,4,7,8,8,3,1,10 = 10 E3,3= min 2,9,4,7,8,8,3,1,10 = 1 T3,3= 10 - 1= 9 D3,4= maks 9,4,6,5,5,8,8,10,7 = 10 E3,4= min 9,4,6,5,5,8,8,10,7 = 4 T3,4 =10 – 4 = 6 D3,5 = maks4,6,0,0,0,5,8,7,5 = 8 E3,5= min 4,6,0,0,0,5,8,7,5 = 0 T3,5 = 8 - 0 = 8 D4,1 = maks 0,6,1,3,5,2,0,0,8 = 8 E4,1= min 0,6,1,3,5,2,0,0,8 = 0 T4,1= 8 - 0 = 8 D4,2= maks 6,1,10,8,1,5,2,8,3 = 10 E4,2= min 6,1,10,8,1,5,2,8,3 = 1 T4,2=10 - 1= 9 D4, 3= maks 1,10,7,8,9,1,5,3,8 = 10 E4,3= min 1,10,7,8,9,1,5,3,8 = 1 T4,3= 10 - 1 = 9 D4,4= maks 10,7,5,5,4,9,1,8,8 = 10 E4,4= min 10,7,5,5,4,9,1,8,8 = 1 T4,4= 10 - 1 = 9 D4,5= maks 7,5,0,0,0,4,9,8,5 = 9 E4,5= min 7,5,0,0,0,4,9,8,5 = 0 T4,5= 9 - 0 = 9 D5,1= maks 0,8,3,5,0,0,0,0,2 = 8 E5,1= min 0,8,3,5,0,0,0,0,2 = 0 T5,1= 8 – 0 = 8 D5,2= maks 8,3,8,1,0,0,0,2,5 = 8 E5,2= min 8,3,8,1,0,0,0,2,5 = 0 T5,2= 8 – 0 = 8 D5,3= maks 3,8,8,9,0,0,0,5,1 = 9 E5,3= min 3,8,8,9,0,0,0,5,1 = 0 T5,3=9-0=9 D5,4= maks 8,8,5,4,0,0,0,1,9 = 9 E5,4= min 0,8,3,5,0,0,0,0,2 = 0 T5,4= 9 – 0 = 9 D5,5= maks 8,5,0,0,0,0,0,9,4 = 9 E5,5= min 8,5,0,0,0,0,0,9,4 = 0 T5,5= 9 - 0 = 9 Setelah dilakukan perhitungan seperti diatas, maka didapat citra output dari matriks 5x5 yang sebelumnya telah disebutkan. Citra output dapat dilihat pada matriks berikut ini: ⎣ ⎢ ⎢ ⎢ ⎡ 3 1 6 2 3 5 2 9 4 6 6 1 10 7 5 8 3 8 8 5 2 5 1 9 4⎦ ⎥ ⎥ ⎥ ⎤ ⎣ ⎢ ⎢ ⎢ ⎡ 15 15 15 9 6 15 14 9 8 7 15 9 9 6 8 8 9 9 9 9 8 8 9 9 9⎦ ⎥ ⎥ ⎥ ⎤

3.2 Pseudocode

Pseudocode adalah kode yang digunakan untuk menuliskan sebuah algoritma yang bebas dan tidak terkaid dengan bahasa pemrograman tertentu. Pseudocode berisi langkah-langkah untuk menyelesaikan suatu permasalahn yang bentuknya sedikit berbeda dari algoritma. Pseudocode menggunakan bahasa ynag mudah dipahami secara umum dan ringkas. 3.2.1 Pseudocode Proses Deteksi Tepi 1. Mengubah citra dengan format JPG menjadi citra grayscale int rata2=0; for y -0; y gambar.Tinggi; y++ for x-0; x gambar.Lebar; x++ rata2=gambar.GetPixelx, y.R + gambar.GetPixelx, y.G + gambar.GetPixelx, y.B3; 2. Melakukan Konvolusi citra dengan ukuran kernel 3x3 int xStart, xFinish, yStart, yFinish; int pixel; xStart = xPos - 1 xFinish = xPos + 1 yStart = yPos - 1 yFinish = yPos + 1 for y - yStart y = yFinish for int x - xStart; x = xFinish if x 0 || y 0 || x gambar.lebar-1 || y gambar.Tinggi - 1 neighboursList.Add0 else pixel = bitmap.GetPixelx, y.R neighboursList.Addpixel