• Tidak ada hasil yang ditemukan

BAB III ANALISA DAN PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III ANALISA DAN PERANCANGAN"

Copied!
22
0
0

Teks penuh

(1)

3.1 Analisa Sistem

Tahap analisis merupakan tahapan yang paling awal dalam sistem sebuah pendeteksian tepi pada citra digital. Analisis sistem dilakukan dengan tujuan untuk mengetahui dan memahami permasalahan dari suatu sistem yang akan dibuat. Dengan adanya berbagai aplikasi yang sangat luas dalam perkembangan pemrosesan citra merupakan solusi dari banyaknya masalah yang di hadapi untuk kepentingan astronomi, medis, bidang industri, dan sebagainya.

Untuk itu penulis mencoba membuat aplikasi deteksi tepi menggunakan metode gradien yaitu Roberts, Sobel, Prewitt, Isotropic dan Stochastic yang digunakan untuk keperluan memproses citra seperti yang sudah dijelaskan pada bab sebelumnya.

3.1.1 Analisis Masalah

Metode Deteksi tepi sangatlah banyak yaitu terdiri dari metode gradien yaitu Roberts, Sobel, Prewitt, Isotropic dan Stochastic. Ada juga deteksi tepi turunan kedua yaitu metode Laplacian of Gaussian, Differensial of Gaussian dan metode Canny dan ada pula deteksi tepi yang menggunakan arah mata angin untuk mendeteksi tepi yaitu metode Compass, Kirsch dan metode Robinson. Dari banyak nya metode pengolahan citra banyak user atau pengguna tidak mengetahui metode mana yang paling cepat dalam melakukan proses deteksi tepi citra optik dan juga metode mana yang paling tinggi nilai sensitivitas terhadap noise.

Dari permasalahan tersebut, maka penulis ingin membuat sebuah aplikasi deteksi tepi citra optik menggunakan Matlab dan permasalahan tersebut antara lain yaitu :

1. Apa saja data yang diperlukan dalam proses pembuatan aplikasi

pendeteksian tepi, mulai dari masukan sampai menghasilkan keluaran yang diinginkan?

(2)

2. Bagaimanakah metode deteksi tepi gradien (Roberts, Sobel, Prewitt, Isotropic dan Stochastic) dalam mendeteksi tepi citra optik ?

3. Bagaimanakan bentuk keluaran yang akan dihasilkan dari aplikasi ini ? 4. Berapakah waktu yang di perlukan dalam melakukan proses deteksi tepi

menggunakan metode deteksi tepi gradien (Roberts, Sobel, Prewitt, Isotropic dan Stochastic) dan metode mana yang paling cepat dan paling lambat dalam mendeteksi tepi citra digital ?

5. Metode deteksi tepi mana yang paling tinggi nilai sensitivitas terhadap noise salt & pepper sebanyak 0.01 ?

3.1.2 Analisis Kebutuhan dan Aplikasi yang diharapkan

Perangkat keras yang digunakan penulis untuk pembuatan aplikasi ini yaitu satu set laptop dengan spesifikasi :

1. Processor : Intel® CoreTM i5-2430M CPU @ 2.40GHz

2. Memory : 4096MB RAM

3. Harddisk : 465,75 GB

4. Video Graphcs Adapter (VGA) : NVIDIA GeForce GT 525M

5. Mouse : Logitech

6. Keyboard

Sedangkan perangkat lunak yang digunakan dalam pembuatan aplikasi deteksi tepi ini adalah :

1. Windows 10 Home Premium 64-bit sebagai sistem operasi yang

digunakan.

2. Matlab R2013a GUI sebagai aplikasi untuk membuat aplikasi ini.

Beberapa kegunaan secara khusus aplikasi deteksi tepi citra optik menggunakan matlab sebagai berikut :

1. Aplikasi ini dapat memproses deteksi tepi citra digital dengan cepat. 2. Aplikasi ini menyediakan beberapa metode deteksi tepi untuk mengolah

citra digital yaitu dengan metode Roberts, Sobel, Prewitt, Isotropic dan Stochastic.

(3)

Masalah

Pendeteksian Tepi Perancangan Aplikasi Keluaran

Algoritma Flowchart

Pengkodean

Program

3. Aplikasi ini dapat memperlihatkan berapa lama waktu yang digunakan untuk memproses deteksi tepi citra digital dengan menggunakan metode gradien.

4. Aplikasi ini dapat memperlihatkan metode gradien mana yang memiliki sensitivitas tertinggi terhadap noise dengan menggunakan noise salt & pepper sebanyak 0.01.

5. Aplikasi ini dapat menyimpan hasil gambar dari proses deteksi tepi citra optik menggunakan Matlab.

3.2 Metodologi Pemecahan Masalah

Dari hasil analisis masalah dan analisis aplikasi yang di harapkan, berikut merupakan skema kerja sistem untuk menyelesaikan permasalahan yang terjadi.

Gambar 3.1 Skema Kerja Sistem

Penjelasan dari Gambar 3.1 tentang skema kerja sistem citra yang digunakan adalah citra kucing dan lena dengan format JPG. Citra yang menjadi inputan lalu di proses pendeteksian tepi dengan menggunakan metode gradien (Roberts, Sobel, Prewitt, Isotropic dan Stochastic) setelah di pilih metode gradien mana yang

(4)

digunakan akan menghasilkan gambar hasil deteksi tepi, berapa lama waktu yang dibutuhkan untuk melakukan proses deteksi tepi dan erapa nilai sensitivitas terhadap noise dari mettode yang sudah di pilih tadi.

3.3 Perancangan Aplikasi

Perancangan aplikasi ini menggunakan program sederhana yaitu menggunakan Matlab R2013a dengan tujuan agar perancangan aplikasi ini dapat sesuai dengan kebutuhan yang sebelum nya sudah di analisa, sehingga program pun dapat berjalan sesuai dengan fungsi yang di harapkan. penulis membuat sebuah rancangan yang berupa flowchart yang di bagi dalam beberapa proses pembuatan yaitu proses awal, proses deteksi tepi dan proses keluaran (hasil dari deteksi tepi citra digital).

3.3.1 Proses Awal

Pada tahapan ini dilakukan pembacaan citra masukan yaitu berupa citra yang akan di proses, kemudian citra dibaca sehingga bisa diketahui ukuran citra dan nilai piksel citra.

(5)

start A, i=0, j=0, F [] []; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ end

Gambar 3.2 Flowchart Pembacaan Citra

3.3.2 Proses Deteksi Tepi Menggunakan Operator Roberts

Operator Roberts adalah sebuah teknik deteksi tepi yang sederhana dan memiliki tingkat komputasi yang cepat. Operator roberts berbasis gradient yang menggunakan kernel ukuran 2x2 piksel. Operator ini mengambil arah diagonal untuk penentuan arah dalam perhitungan nilai gradient.

kernel Roberts horizontal (𝑅𝑥) = [ 1 0

0 −1 ] dan kernel Roberts vertical (𝑅𝑦) = [ 0 −1 1 0 ] yes yes no no

(6)

Start Baca citra grayscale Masukan nilai kernel robert horizontal (Rx) Masukan nilai kernel robert vertical (Ry) Konvolusikan citra grayscale dengan kernel robert horizontal (Rx) Konvolusikan citra grayscale dengan kernel robert vertical (Ry)

Hitung besar gradient

Cetak Nilai G

End

(7)

Cetak nilai pixel G End start A, i=0, j=0, F [] [], Rx [], Ry [], G; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ Rx = [ F (i,j) – F (i+1,j+1) ] Ry = [ F (i+1,j) – F (i,j+1) ] G = sqrt (Rx^2 +Ry^2)

Gambar 3.4 Flowchart Deteksi Tepi Operator Roberts

3.3.3 Proses Deteksi Tepi Menggunakan Operator Sobel

Operator Sobel adalah salah satu operator yang menhindari adanya perhitungan gradient di titik interpolasi. Operator ini menggunakan kernel ukuran

yes

yes

no no

(8)

3x3 pixel untuk perhitungan gradient sehingga gradien berada tepat di tengah jendela. Operator sobel adalah operator yang paling banyak digunakan sebagai pendeteksian tepi karena kesederhanaan dan keampuhannya.

kernel Sobel horizontal (𝑆𝑥) = [

−1 0 1

−2 0 2

−1 0 1

] dan kernel Sobel vertical (𝑆𝑦) =

[ −1 −2 −1 0 0 0 1 2 1 ] Start Baca citra grayscale Masukan nilai kernel sobel horizontal (Sx) Masukan nilai kernel sobel vertical (Sy) Konvolusikan citra grayscale dengan kernel sobel horizontal (Sx) Konvolusikan citra grayscale dengan kernel sobel vertical (Sy)

Hitung besar gradient

Cetak Nilai G

End

(9)

Cetak nilai pixel G End start A, i=0, j=0, F [] [], Sx [][], Sy [][], G; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ Sx = [F(x1,y1)+2F(x1,y)+F(x1,y+1)] -[F(x+1,y-1)+2F(x+1,y)+F(x+1,y+1)] Sy = [F(x1,y1)+2F(x,y1)+F(x+1,y1)] -[F(x-1,y+1)+2F(x,y+1)+F(x+1,y+1)] G = sqrt (Sx^2 +Sy^2)

Gambar 3.6 Flowchart Deteksi Tepi Operator Sobel

3.3.4 Proses Deteksi Tepi Menggunakan Operator Prewitt

Pengembangan dari gradient operator dengan menggunakan 2 mask (horizontal dan vertikal) ukuran 3x3. Pada operator ini kekuatan gradient ditinjau dari sudut pandang horizontal dan vertikal (memperhatikan titik disekitar pada posisi horizontal dan vertikal). Persamaan gradien pada operator Prewitt sama

yes

yes

no no

(10)

seperti operator Sobel, tetapi menggunakan nilai konstanta c = 1, Kernel fillter yang digunakan dalam metode Prewitt ini adalah :

kernel Prewitt horizontal (𝑃𝑥) = [

−1 0 1

−1 0 1

−1 0 1

] dan kernel Prewitt vertical

(𝑃𝑦) = [ −1 −1 −1 0 0 0 1 1 1 ] Start Baca citra grayscale Masukan nilai kernel prewitt horizontal (Px) Masukan nilai kernel Prewitt vertical (Py) Konvolusikan citra grayscale dengan kernel prewitt horizontal (Px) Konvolusikan citra grayscale dengan kernel prewitt vertical (Py)

Hitung besar gradient

Cetak Nilai G

End

(11)

Cetak nilai pixel G End start A, i=0, j=0, F [] [], Px [][], Py [][], G; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ Px = [F(i1,j1)+1F(i1,j)+F(i1,j+1)] -[F(i+1,j-1)+1F(i+1,j)+F(i+1,j+1)] Py = [F(i-1,j-1)+1F(i,j-1)+F(i+1,j-1)] - [F(i-1,j+1)+1F(i,j+1)+F(i+1,j+1)] G = sqrt (Px^2 +Py^2)

Gambar 3.8 Flowchart Deteksi Tepi Operator Prewitt

3.3.5 Proses Deteksi Tepi Menggunakan Operator Isotropic

Operator Isotropik merupakan salah satu deteksi tepi dengan metode operator gradien yang menggunakan dua buah matriks 3x3, yaitu matriks vertikal dan matriks horisontal yang ditapis secara bersamaan. Bedanya operator Isotropic

yes

yes

no no

(12)

dengan operator metode gradien lain adalah nilai konstanta c = √2, dibawah ini adalah kernel horizontal dan vertical operator Isotropic :

kernel Isotropic horizontal (𝐼𝑥) = [

−1 0 1

−√2 0 √2

−1 0 1

] dan kernel Isotropic vertical

(𝐼𝑦) = [−1 −√2 −1 0 0 0 1 √2 1 ] Start Baca citra grayscale Masukan nilai kernel isotropic horizontal (Ix) Masukan nilai kernel isotropic vertical (Iy) Konvolusikan citra grayscale dengan kernel isotropic horizontal (Ix) Konvolusikan citra grayscale dengan kernel isotropic vertical (Iy)

Hitung besar gradient

Cetak Nilai G

End

(13)

Cetak nilai pixel G End start A, i=0, j=0, F [] [], Ix [][], Iy [][], G; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ Ix = [F(i1,j1)+sqrt2F(i1,j)+F(i1,j+1)] -[F(i+1,j-1)+sqrt2F(i+1,j)+F(i+1,j+1)] Iy = [F(i-1,j-1)+sqrt2F(i,j-1)+F(i+1,j-1)] - [F(i-1,j+1)+sqrt2F(i,j+1)+F(i+1,j+1)] G = sqrt (Ix^2 +Iy^2)

Gambar 3.10 Flowchart Deteksi Tepi Operator Isotropic

3.3.6 Proses Deteksi Tepi Menggunakan Operator Stochastic

Operator Stochastic sama seperti operator Sobel, Prewitt dan Isotropic yaitu salah satu operator deteksi tepi dengan metode gradien yang menggunakan dua buah matriks 3x3, yaitu matriks vertikal dan matriks horisontal yang ditapis secara bersamaan. Berikut adalah kernel untuk operator Stochastic :

yes

yes

no no

(14)

kernel Stochastic horizontal (𝑆𝑡𝑥) = [ −0.776 0 0.776 −1 0 1 −0.776 0 0.776 ] dan kernel Stochastic vertical (𝑆𝑡𝑦) = [ −0.776 −1 −0.776 0 0 0 0.776 1 0.776 ] Start Baca citra grayscale Masukan nilai kernel stohastic horizontal (Stx) Masukan nilai kernel stohastic vertical (Sty) Konvolusikan citra grayscale dengan kernel stohastic horizontal (Stx) Konvolusikan citra grayscale dengan kernel stohastic vertical (Sty)

Hitung besar gradient

Cetak Nilai G

End

(15)

Cetak nilai pixel G End start A, i=0, j=0, F [] [], Stx [][], Sty [][], G; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ Stx = [0.776*F(i-1,j-1)+F(i-1,j)+0.776*F(i-1,j+1)] -[0.776*F(i+1,j-1)+F(i+1,j)+0.776*F(i+1,j+1)] Sty = [0.776*F(i-1,j-1)+F(i,j-1)+0.776*F(i+1,j-1)] - [0.776*F(i-,j+1)+F(i,j+1)+0.776*F(i+1,j+1)] G = sqrt (Stx^2 +Sty^2)

Gambar 3.12 Flowchart Deteksi Tepi Operator Stochastic

3.3.7 Proses Keluaran

Proses keluaran atau tahapan terakhir dari program yang ingin dibuat yaitu menampilkan citra yang ingin di proses, hasil citra yang sudah di proses dengan menggunakan metode pendeteksian tepi metode gradien (Roberts, Sobel, Prewitt, Isotropic dan Stochastic) yang sudah di pilih, menampilkan hasil perhitungan

yes

yes

no no

(16)

lama waktu untuk melakukan proses deteksi tepi dan menampilkan nilai sensitivitas terhadap noise.

3.3.8 Menghitung lawa waktu

Dalam aplikasi deteksi tepi citra optik menggunakan matlab penulis menggunakan sourcode asli Matlab untuk melakukan perhitungan lama waktu yang dibutuhkan dalam proses deteksi tepi. yaitu menggunakan :

tic; % digunkan pada awal perintah fungsi yang ingin dihitung lama waktu toc; % digunakan pada akhir perintah

contoh scriptnya pada aplikasi bawaan matlab :

tic; I=imread('lena.jpg'); gray=rgb2gray(I); BW=edge(gray,'prewitt'); set(imshow(BW)); toc;

3.3.9 Menghitung Sensitivitas Terhadap Noise

Dalam flowchart ini menggunakan Noise Salt & Pepper sebanyak 0.01. hasil yang di harapkan dapat mengetahui metode mana yang paling sensitiv terhadap noise.

Untuk menghitung sensitivitas deteksi tepi terhadap noise yaitu menggunakan rumus :

dimana:

nR : jumlah piksel yang dinyatakan sebagai edge pada citra referensi n

N : jumlah piksel yang dinyatakan sebagai edge pada citra noisy

Nilai P yang besar menyatakan sensitivitas edge detector yang tinggi terhadap noise.

(17)

Dibawah ini adalah flowchart sensitivitas deteksi tepi roberts terhadap noise salt & pepper sebanyak 0.01 :

start A, i=0, j=0, F [] [], Rx [], Ry [], G, noise, nr, nn, P; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ Rx = [ F (i,j) – F (i+1,j+1) ] Ry = [ F (i+1,j) – F (i,j+1) ] G = sqrt (Rx^2 +Ry^2) Cetak nilai pixel P End

noise = imnoise (G, ‘salt & pepper’,0.01)

nr = sum(sum(G))

nn = sum(sum(noise))

P = abs(nn-nr)/nr

Gambar 3.13 Flowchart Sensitivitas Operator Roberts yes

yes

no no

(18)

Dibawah ini adalah Flowchart Sensitivitas Deteksi Tepi Sobel terhadap Noise Salt & Pepper sebanyak 0.01 :

start A, i=0, j=0, F [] [], Sx [][], Sy [][], G, noise, nr, nn, P; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ Sx = [F(i1,j1)+2F(i1,j)+F(i1,j+1)] -[F(i+1,j-1)+2F(i+1,j)+F(i+1,j+1)] Sy = [F(i-1,j-1)+2F(i,j-1)+F(i+1,j-1)] - [F(i-1,j+1)+2F(i,j+1)+F(i+1,j+1)] G = sqrt (Sx^2 +Sy^2) Cetak nilai pixel P End

noise = imnoise (G, ‘salt & pepper’,0.01)

nr = sum(sum(G))

nn = sum(sum(noise))

P = abs(nn-nr)/nr

Gambar 3.14 Flowchart Sensitivitas Operator Sobel yes

yes

no no

(19)

Dibawah ini adalah Flowchart Sensitivitas Deteksi Tepi Prewitt terhadap Noise Salt & Pepper sebanyak 0.01 :

start A, i=0, j=0, F [] [], Px [][], Py [][], G, noise, nr, nn, P; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ Px = [F(i1,j1)+1F(i1,j)+F(i1,j+1)] -[F(i+1,j-1)+1F(i+1,j)+F(i+1,j+1)] Py = [F(i-1,j-1)+1F(i,j-1)+F(i+1,j-1)] - [F(i-1,j+1)+1F(i,j+1)+F(i+1,j+1)] G = sqrt (Sx^2 +Sy^2) Cetak nilai pixel P End

noise = imnoise (G, ‘salt & pepper’,0.01)

nr = sum(sum(G))

nn = sum(sum(noise))

P = abs(nn-nr)/nr

Gambar 3.15 Flowchart Sensitivitas Operator Prewitt yes

yes

no no

(20)

Dibawah ini adalah Flowchart Sensitivitas Deteksi Tepi Isotropic terhadap Noise Salt & Pepper sebanyak 0.01 :

Cetak nilai pixel P End start A, i=0, j=0, F [] [], Ix [][], Iy [][], G, noise, nr, nn, P; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ Ix = [F(i1,j1)+sqrt2F(i1,j)+F(i1,j+1)] -[F(i+1,j-1)+sqrt2F(i+1,j)+F(i+1,j+1)] Iy = [F(i-1,j-1)+sqrt2F(i,j-1)+F(i+1,j-1)] - [F(i-1,j+1)+sqrt2F(i,j+1)+F(i+1,j+1)] G = sqrt (Ix^2 +Iy^2)

noise = imnoise (G, ‘salt & pepper’,0.01)

nr = sum(sum(G))

nn = sum(sum(noise))

P = abs(nn-nr)/nr

Gambar 3.16 Flowchart Sensitivitas Operator Isotropic yes

yes

no no

(21)

Dibawah ini adalah Flowchart Sensitivitas Deteksi Tepi Stochastic terhadap Noise Salt & Pepper sebanyak 0.01 :

Cetak nilai pixel P End start A, i=0, j=0, F [] [], Stx [][], Sty [][], G, noise, nr, nn, P; a = input image

New F [getHeight(a)] [getWidth(a)]

i<=getHeight(a) j<=getWidth(a) F [i][j] = getPixel(a) j ++ i ++ Stx = [0.776*F(i1,j1)+F(i1,j)+0.776*F(i1,j+1)] -[0.776*F(i+1,j-1)+F(i+1,j)+0.776*F(i+1,j+1)] Sty = [0.776*F(i-1,j-1)+F(i,j-1)+0.776*F(i+1,j-1)] - [0.776*F(i-,j+1)+F(i,j+1)+0.776*F(i+1,j+1)] G = sqrt (Ix^2 +Iy^2)

noise = imnoise (G, ‘salt & pepper’,0.01)

nr = sum(sum(G))

nn = sum(sum(noise))

P = abs(nn-nr)/nr

Gambar 3.17 Flowchart Sensitivitas Operator Stochastic yes

yes

no no

(22)

Gambar

Gambar 3.1 Skema Kerja Sistem
Gambar 3.2 Flowchart Pembacaan Citra
Gambar 3.3 Flowchart Alur Kerja Deteksi Tepi Operator Roberts
Gambar 3.4 Flowchart Deteksi Tepi Operator Roberts
+7

Referensi

Dokumen terkait

Hasil perbandingan akhir dari MSE, PSNR dan Running Time sebagai paramater pembanding pengujian untuk deteksi tepi Sobel, Prewitt dan Robert dengan citra Asli,

Tujuan penelitian ini adalah untuk mengetahui hasil perbandingan deteksi tepi pada citra menggunakan operator Sobel, operator Prewitt dan operator Robert

Contoh hasil segmentasi deteksi tepi Metode deteksi tepi yang digunakan pada penelitian ini adalah metode atau operator Robert, Prewitt, Sobel, Laplacian, Kirsch,

Berdasarkan penelitian yang telah dilakukan maka dapat disimpulkan bahwa berdasarkan deteksi tepi canny, sobel dan prewitt yang digunakan sebelum proses CBIR bahwa tepi

• Di dalam Matlab, selain menggunakan fungsi conv2 untuk melakukan konvolusi dengan filter Sobel, Prewitt, Roberts, dan Canny, juga terdapat fungsi edge untuk mendeteksi tepi

Pada pengujian pengenalan jenis bentuk wajah, metode deteksi tepi yang mempunyai tingkat keberhasilan pengenalan paling tinggi adalah metode deteksi tepi Roberts

Percobaan dengan kernel Sobel, kernel Isotropic, dan kernel Compass digunakan untuk deteksi tepi yang berfungsi untuk mengidentifikasi garis batas

Berikut ini tabel yang berisi 5 dari 30 hasil citra dari pendeteksian tepi menggunakan operator Sobel, Prewitt, Canny, Prewitt, dan Roberts : TABEL IV HASIL CITRA MENGGGUNAKAN