pendeteksian citra biner

42
SIMULASI PENDETEKSIAN GARIS LURUS (STRAIGHT LINE) PADA CITRA DIGITAL MENGGUNAKAN MATLAB 7.1 oleh Anggit Praharasty L2F005513

Upload: jujuk-kurniawan

Post on 29-Nov-2015

79 views

Category:

Documents


1 download

DESCRIPTION

materi pengolahan citra

TRANSCRIPT

SIMULASI PENDETEKSIAN

GARIS LURUS (STRAIGHT LINE) PADA CITRA DIGITAL

MENGGUNAKAN MATLAB 7.1

oleh

Anggit PraharastyL2F005513

JURUSAN TEKNIK ELEKTROFAKULTAS TEKNIK

UNIVERSITAS DIPONEGORO

Semarang, November 2008

Simulasi Pendeteksian Garis Lurus (Straight Line) pada Citra Digital

Menggunakan MATLAB 7.1

ABSTRAK

Pengolahan citra digital merupakan proses yang bertujuan untuk memanipulasi dan menganalisis citra dengan bantuan komputer. Operasi-operasi dalam pengolahan citra banyak macamnya. Namun, secara umum operasi tersebut dapat diklasifikasikan menjadi perbaikan kualitas citra, pemugaran citra, pemampatan citra, segmentasi citra, amalsis citra, dan rekonstruksi citra. Proses analisis citra bertujuan menghitung besaran kuantitatif dari citra untuk menghasilkan deskripsinya. Teknik menganalisis citra mengekstrasi cirri-ciri tertentu yang membantu dalam identifikasi objek. Proses segmentasi kadangkala diperlukan untuk melokalisasi objek yang diinginkan dari sekelilingnya. Salah satu operasi analisis citra ialah pendeteksian garis lurus (straight line).

Dalam makalah ini akan di bangun sebuah sistem program untuk pendeteksian garis lurus menggunakan MATLAB 7.1. Algoritma yang digunakan pada simulasi ialah run length vertikal maksimum, run length horisontal minimum, dan run length diagonal.

Kata kunci : straight line, pendeteksian, MATLAB 7.1

1. Pendahuluan

1.1 Latar Belakang

Pengolahan citra digital adalah pemrosesan citra, khususnya dengan

menggunakan komputer agar citra menjadi lebih baik kualitasnya. Pengolahan citra

bertujuan memperbaiki kualitas citra agar mudah diinterpretasikan oleh manusia atau pun

mesin, dalam hal ini komputer.

Pengolahan citra digital merupakan proses yang bertujuan untuk memanipulasi

dan menganalisis citra dengan bantuan komputer. Pengolahan citra digital pada

umumnya dapat dikelompokkan dalam dua jenis kegiatan, yaitu:

a. Memperbaiki kualitas suatu gambar sehingga dapat lebih mudah

diinterprestasi oleh mata manusia.

b. Mengolah informasi yang terdapat pada suatu gambar untuk keperluan

pengenalan objek secara automatis.

Secara umum tahapan-tahapan dalam pengolahan citra digital dapat terdiri atas:

1. Akuisisi citra (image acquisition).

2. Digitisasi, Kuantisasi, dan kompresi citra (image digitization, quantization

and compression).

3. Perbaikan dan peningkatan kualitas citra (image restoration and

enhancement).

4. Segmentasi citra (image segmentation).

5. Ektraksi Ciri (feature extraction).

6. Klasifikasi citra (image classification).

Operasi-operasi dalam pengolahan citra banyak macamnya. Namun, secara umum

operasi tersebut dapat diklasifikasikan menjadi perbaikan kualitas citra, pemugaran citra,

pemampatan citra, segmentasi citra, amalsis citra, dan rekonstruksi citra. Proses analisis

citra bertujuan menghitung besaran kuantitatif dari citra untuk menghasilkan

deskripsinya. Teknik menganalisis citra mengekstrasi ciri-ciri tertentu yang membantu

dalam identifikasi objek. Proses segmentasi kadangkala diperlukan untuk melokalisasi

objek yang diinginkan dari sekelilingnya. Salah satu operasi analisis citra ialah

pendeteksian garis lurus (straight line).

Untuk mengawali pengolahan citra digital diperlukan adanya proses pendeteksian

citra. Pada makalah ini diusulkan sebuah program pendeteksian garis lurus pada citra

digital menggunakan MATLAB 7.1.

1.2 Tujuan Penulisan

Tujuan dari penulisan makalah ini adalah untuk membuat suatu program simulasi

untuk mendeteksi garis lurus dari suatu citra, baik garis horisontal, vertikal, maupun

diagonal.

1.3 Batasan Masalah

Batasan – batasan masalah dalam makalah ini adalah:

1. Masukan sistem adalah citra dalam aras RGB (Red, Green, Blue). Tanpa

membahas proses pengambilan, pemotretan dan pemprosesan citra sebelum

digunakan.

2. Format citra asli merupakan citra berwarna 24-bit dalam format JPEG

(ekstensi *.jpg).

3. Pendeteksian hanya dilakukan dengan pendeteksian garis lurus berdasar

run length horisontal, run length vertikal, dan run length diagonal.

4. Perangkat yang dipakai dalam tugas akhir ini adalah Matlab 7.1.

2. Dasar Teori

2.1 Citra Digital

Citra digital merupakan larik dua dimensi atau suatu matriks yang elemen-

elemennya menyatakan tingkat keabuan dari elemen gambar. Citra digital dapat berupa

keluaran proses pemayaran atau proses fotografi digital yang mengandung informasi.

Citra digital tersebut dicuplik dan dipetakan pada kisi-kisi elemen citra yang disebut

dengan piksel. Citra dapat dinyatakan dalam titik-titik koordinat pada kawasan ruang

(spasial) atau bidang dan untuk menentukan warna atau menyatakan nilai keabuan suatu

citra. Salah satu contoh bentuk citra digital adalah citra monokrom atau citra hitam putih

yang merupakan citra satu kanal, dimana citra merupakan fungsi tingkat keabuan

dari hitam ke putih; x menyatakan variabel baris dan y menyatakan variabel kolom.

Gambar 2.1 menunjukkan contoh bentuk citra monokrom dan bentuk matriks

penyusunnya.

(a) (b)

Gambar 2.1 Contoh bentuk citra monokrom dan bentuk matriks penyusunnya

2.1.1 Piksel

Agar citra dapat diolah oleh sebuah komputer digital, maka sebuah citra harus

disimpan pada format yang dapat diolah oleh sebuah program komputer. Cara yang

paling praktis yang dapat dilakukan adalah dengan membagai citra menjadi sekumpulan

sel-sel diskret, yang disebut piksel.

Pada umumnya sebuah citra dibagi menjadi kisi-kisi persegi, sehingga piksel

sendiri adalah sebuah kisi-kisi persegi yang kecil. Selanjutnya setiap piksel diberi nilai

yang menyatakan warna atau menyatakan tingkat kecerahan piksel yang bersangkutan,

yang sering disebut dengan intensitas piksel.

2.1.2 Citra Keabuan

Citra beraras keabuan adalah citra yang hanya menggunakan warna yang

merupakan tingkatan warna abu-abu. Warna abu-abu adalah satu-satunya warna pada

ruang RGB dengan komponen merah, hijau, dan biru mempunyai intensitas yang sama.

Pada citra beraras keabuan hanya perlu menyatakan nilai intensitas untuk tiap piksel

sebagai nilai tunggal, sedangkan pada citra berwarna perlu tiga nilai intensitas untuk tiap

pikselnya.

Intensitas citra beraras keabuan disimpan sebagai integer 8 bit sehingga

memberikan 28 = 256 tingkat keabuan dari warna hitam sampai warna putih. Dengan

menggunakan pola 8-bit ini citra beraras keabuan membutuhkan ruang memori dan

waktu pengolahan yang lebih sedikit daripada citra berwarna (RGB). Pada Gambar 6.6

diperlihatkan visualisasi 256 aras keabuan.

Gambar 2.2 Visualisasi 256 aras keabuan

2.2 Teori Dasar Citra Digital

Citra dapat dinyatakan sebagai fungsi kontinu dari intensitas cahaya dalam

bidang dua dimensi, , dan menyatakan koordinat ruang dan nilai pada suatu

koordinat menyatakan kecerahan dan informasi warna citra. Secara matematis

persamaan untuk fungsi intensitas, adalah :

(6.1)

Pada hakikatnya citra yang dilihat oleh mata terdiri atas berkas-berkas cahaya

yang dipantulkan oleh benda-benda sekitar kita. Jadi fungsi intensitas, merupakan

fungsi sumber cahaya, yang menerangi objek serta jumlah cahaya yang

dipantulkan, oleh objek. Dengan demikian dapat dinyatakan dengan

persamaan:

(6.2)

dengan: (iluminasi sumber cahaya)

(koefisien pantul cahaya)

Citra digital adalah sajian citra dalam bentuk diskret, baik pada koordinat ruang

maupun nilai intensitas cahayanya. Dengan demikian citra digital dapat disajikan sebagai

matriks berdimensi , dengan M menyatakan tinggi dan N menyatakan lebar dari

citra.

Aras keabuan adalah nilai intensitas dari suatu piksel yang terdapat dalam

suatu citra monokrom . Persamaan (6.1) dan (6.2) menunjukkan bahwa l terletak pada:

(6.3)

Dengan:

Selang disebut skala keabuan, yang secara praktis selang ini digeser ke

selang , dimana menyajikan warna hitam dan l = L menyajikan warna putih.

Dengan demikian citra skala keabuan adalah format citra yang memiliki warna abu–abu

bertingkat dari hitam menuju putih.

2.3 Deteksi Tepi

Tepi merupakan batasan-batasan antar daerah dengan tingkat keabuan yang nyata.

Jika tepi bersifat diskontinuitas pada suatu citra, menjadikan bentuk pada suatu citra yang

terjadi cukup sering berguna pada mekanisme terpisah untuk pendeteksiannya. Di sini

kami hadirkan suatu teknik dasar konvolusi yang menghasilkan suatu uraian citra yang

menyangkut bentuk pada suatu citra masukan. Transformasi Hough dapat digunakan

untuk mendeteksi bentuk dimana keluaran adalah suatu uraian parameter dari bentuk

citra.

Deteksi tepi (Edge Detection) pada suatu citra adalah suatu proses yang

menghasilkan tepi-tepi dari obyek-obyek citra, yang bertujuan sebagai berikut :

• Untuk menandai bagian yang menjadi detail citra

• Untuk memperbaiki detail dari citra yang kabur, yang terjadi karena error atau

adanya efek dari proses akuisisi citra

Suatu titik (x,y) dikatakan sebagai tepi (edge) dari suatu citra bila titik tersebut

mempunyai perbedaan yang tinggi dengan tetangganya. Gambar 8.1 berikut ini meng-

gambarkan bagaimana tepi suatu gambar diperoleh.

Gambar 2.3 Proses Deteksi Tepi Citra

Berikut hasil deteksi dari beberapa citra menggunakan model differensial di atas :

Gambar 2.4 Hasil beberapa deteksi tepi

Pada gambar 2. terlihat bahwa hasil deteksi tepi berupa tepi-tepi dari suatu

gambar. Bila diperhatikan bahwa tepi suatu gambar terletak pada titik-titik yang memiliki

perbedaan tinggi. Berdasarkan prinsip-prinsip filter pada citra maka tepi suatu gambar

dapat diperoleh menggunakan High Pass Filter (HPF), yang mempunyai karakteristik:

Contoh:

Diketahui fungsi citra f(x,y) sebagai berikut:

Dengan menggunakan filter :

Maka hasil tapis adalah :

Bila digambarkan maka proses penapisan di atas mempunyai masukan dan keluaran

sebagai berikut :

Gambar 2.5 Masukan dan keluaran proses filter pada contoh

Catatan: Untuk mencoba perhitungan di atas dapat dilakukan dengan cara manual

menggunakan perhitungan konvolusi, atau dengan memanfaatkan program konvolusi.

Macam-macam metode untuk proses deteksi tepi ini, antara lain: 1. Metode Robert 2.

Metode Prewitt 3. Metode Sobel Metode yang banyak digunakan untuk proses deteksi

tepi adalah metode Robert, Prewitt dan Sobel, Gonzalez [4].

2.3.1 Metode Robert

Metode Robert adalah nama lain dari teknik differensial yang dikembangkan di

atas, yaitu differensial pada arah horisontal dan differensial pada arah vertikal, dengan

ditambahkan proses konversi biner setelah dilakukan differensial. Teknik konversi biner

yang disarankan adalah konversi biner dengan meratakan distribusi warna hitam dan

putih [5], seperti telah dibahas pada bab 3. Metode Robert ini juga disamakan dengan

teknik DPCM (Differential Pulse Code Modulation) Kernel filter yang digunakan dalam

metode Robert ini adalah:

2.3.2 Metode Prewitt

Metode Prewitt merupakan pengembangan metode robert dengan menggunakan

filter HPF yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari

fungsi laplacian yang dikenal sebagai fungsi untuk membangkitkan HPF.

Kernel filter yang digunakan dalam metode Prewitt ini adalah:

2.3.3 Metode Sobel

Metode Sobel merupakan pengembangan metode robert dengan menggunakan

filter HPF yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari

fungsi laplacian dan gaussian yang dikenal sebagai fungsi untuk membangkitkan HPF.

Kelebihan dari metode sobel ini adalah kemampuan untuk mengurangi noise sebelum

melakukan perhitungan deteksi tepi.

Kernel filter yang digunakan dalam metode Sobel ini adalah:

2.4 Deteksi Garis Lurus (Straight Line Detection)

Pada deteksi garis, rantai tepi citra diekstrak pada ketepatan sub-pixel dengan

metode yang pertama kali dijelaskan oleh Canny dan diperkuat oleh Rothwell. Pada

setiap titik di sebuah rantai gradien local diperkirakan, dan suatu prosedur pencarian

jamak digunakan untuk memecah rantai menjadi sub-rantai yang sesuai dengan batasan

tangent yang ditentukan. Akhirnya, sub-rantai dengan sedikit edgel akan dibuang dengan

menggunakan suatu batas ambang sederhana.

Gambar 2.6 Konstruksi geometric pada koordinat log-polar

(a) Membangun suatu segmen garis antara dua titik, suatu kotak dan suatu lingkaran

(b) Kartesian memetakan citra kembali dengan bentuk terekonstruksi

Gambar 2.6 menunjukkan hasil dari pendeteksian garis pada dua buah citra. Citra

pertama merupakan suatu citra buatan yang terdiri dari beberapa struktur linear, tetapi

juga obyek melengkung, dalam rangka memverifikasi metode tersebut dapat

membedakan antara garis lurus dan garis melengkung. Ukuran citra ialah 360 × 234

pixel, dengan parameter log-polar U = 1.01745, rmin = 95, rmax = 328. Citra kedua

adalah suatu pemetaan ulang log-polar dari citra pada deret ‘coridor’. Ukuran citra adalah

360×227 pixel dengan parameter U = 1.01745, rmin = 95, rmax = 321. Citra pertama dan

dua citra buatan dengan arah garis yang diketahui (semua dengan parameter yang sama)

digunakan untuk mengevaluasi perangkat garis yang terdeteksi.

Gambar 2.6 Pendeteksian garis lurus pada koordinat log-polar

(a),(b) Citra pengujian buatan dengan garis terdeteksi pada koordinat log-polar dan dipetakan

ulang pada koordinat Cartesian

(c),(d) citra ’corridor’ dengan garis terdeteksi pada koordinat log-polar dan dipeta ulang pada

koordinat Cartesian.

Hasilnya ditunjukkan pada Tabel 1 berikut:

Tabel 1. Ketepatan dari pendeteksian garis lurus pada koordinat log-polar

Tiga kolom diatas adalah galat minimal, maksimal dan root mean square pada

setiap perangkat garis terekstrak. Pad arms, setiap segmen dibobot dengan sejumlah edgel

yang tersedia. Kolom terakhir adalah pendeteksian rerata DR. Segmen hanya sedikit

salah pada border citra dimana resolusinya rendah.

Operator pendeteksian garis terdiri atas suatu mask konvolusi yang diatur untuk

mendeteksi keberadaan garis pada lebar n tertentu, pada orientasi tertentu. Gambar 6

menunjukkan suatu kumpulan dari mask dimana ditunjukkan tanggapan masing-masing

garis pada lebar pixel tunggal pada orientasi tertentu.

Gambar 2.7 Empat mask pendeteksian garis dengan respon maksimum pada horisontal, vertikal, +450 , 450

Jika tanggapan mask dinotasikan dengan i, mask ini dapat digunakan pada sebuah

citra, dan pada titik tertentu, jika untuk semua titik berisi suatu garis yang orientasi dan

lebarnya sesuai dengan mask i. Mask biasanya mengambangkan untuk menghilangkan

garis lemah yang sesuai dengan tepi dan bentuk lainnya dengan gradien intensitas yang

memiliki skala berbeda dibandingkan lebar garis yang diinginkan. Untuk memperoleh

garis yang utuh maka harus digabungkan dengan fragmen garis, dengan operator edge

tracking.

Untuk menggambarkan pendeteksian garis, dapat dimulai dengan suatu citra

buatan, yang terdiri atas segmen garis tebal dalam arah horisontal, vertikal, dan diagonal

sepanjang citra.

Gambar 2.8 Citra buatan

Hasil dari pengaplikasian operator pendeteksian dengan menggunakan mask

konvolusi horizontal ditunjukkan pada Gambar 2.9 berikut :

Gambar 2.9. Hasil mask konvolusi horizontal

Dengan catatan bahwa gradien citra telah dinormalisasi tampilannya. Ada dua hal

yang harus diperhatikan, yaitu :

1. Karena garis diagonal (dan beberapa vertikal berakhir di batang horizontal)

direpresentasikan pada suatu square pixel grid, seperti

Gambar 2.10 Square pixel grid

menunjukkan suatu daerah perbesaran yang berisi kedua bentuk, pendeteksi garis

horizontal menanggapi lebih dari bentuk mendekati garis horisontal intensitas spasial

tinggi, yaitu :

Gambar 2.11 Garis horizontal intensitas spasial tinggi

2. Pada suatu citra dimana garis yang harus dideteksi lebih lebar daripada mask,

misalnya garis citra adalah lebar 5 pixel sedangkan mask diatur selebar pixel tunggal,

pendeteksi garis berlaku seperti pendeteksi tepi, tepi-tepi pada garis ditemukan

dibandingkan dengan garis itu sendiri.

Kenyataan ini dapat menyebabkan timbul anggapan bahwa citra yang memberi

kenaikan

Gambar 2.12 Citra akan mengalami kenaikan

berisi suatu garis seri maupun paralel dibandingkan dengan garis tebal tunggal.

Bagaimanapun, jika dibandingkan hasilnya yang diperoleh dengan menerapkan mask

pendeteksian garis pada suatu citra yang berisi garis dari suatu lebar pixel tunggal,

dapat ditemukan adanya perbedaan. Sebagai contoh, dapat dilakukan skeletonize pada

citra asli dengan pendeteksian horizontal (jadi sebagai perolehan suatu representasi

dari citra asli diman kebanyakan garis adalah pixel tunggal).

Gambar 2.13 Hasil Skeletonize

3. Perancangan Program

3.1. Algoritma

Algoritma berikut digunakan untuk memilih pixel yang sesuai untuk

menentukan garis horisontal, vertikal, maupun diagonal 450 dan diagonal -450 dari

warna tertentu.

1. Memperoleh suatu bitmap dari citra, dengan sebuah nilai dari setiap kanal

warna merah, hijau, dan biru untuk setiap pixel.

2. Menciptakan suatu larik Boolean 2D yang dinamakan selected dengan

setiap masukan sesuai dengan pixel pada bitmap. Setiap masukan

menandakan bahwa suatu pixel telah melewati semua tapis sejauh ini, lalu

atur semua masukan agar true sebagaimana yang ditetapkan.

3. Jika metode penapisan run length vertikal maksimum dipilih, atur semua

masukan dari selected yang sesuai dengan pixel yang bersebelahan secara

iterative pada dimensi vertikal langsung, yaiu memiliki run length vertikal,

melebihi batas ambang yang ditetapkan menjadi false.

4. Jika metode penapisan run length horisontal minimum dipilih, atur semua

masukan dari selected yang sesuai dengan pixel yang bersebelahan secara

iterative pada dimensi horisontal langsung, yaitu memiliki run length

horisontal, kurang dari batas ambang pixel yang ditetapkan menjadi false.

5. Jika metode penapisan run length diagonal dipilih, atur semua masukan

dari selected yang sesuai dengan pixel yang bersebelahan secara iterative

pada dimensi diagonal langsung, yaitu memiliki run length diagonal,

kurang dari atau lebih dari batas ambang pixel yang ditetapkan menjadi

false. Untuk diagonal positif, kurang dari batas ambang pixel yang

ditetapkan menjadi false. Untuk diagonal negatif, lebih dari batas ambang

pixel yang ditetapkan menjadi false.

6. Pixel-pixel yang bersesuaian dengan masukan yang masih ditandai sebagai

true pada selected tergolong sebagai garis horizontal, vertikal, maupun

diagonal 450 dan diagonal -450 dengan sifat warna dan kecerahan tertentu.

3.2. Simulasi Pendeteksian Garis Lurus

Simulasi pendeteksian garis lurus pada makalah ini dilakukan dengan

menggunakan MATLAB 7.1. Adapun listing code dari simulasi ini ditunjukkan

sebagai berikut :

% A binary image contains straight lines oriented horizontally, vertically,% at 45 degree and at -45 degree. Detect these straight lines in that image.

f=imread('C:\Program Files\MATLAB71\work\bunga.jpg');f=im2double(f);choice=0;H=[-1 -1 -1; 2 2 2;-1 -1 -1];V=[-1 2 -1;-1 2 -1;-1 2 -1];P45=[-1 -1 2;-1 2 -1;2 -1 -1];M45=[2 -1 -1;-1 2 -1;-1 -1 2];while (choice~=5)choice=input('1: Horizontal\n2: Vertical\n3: 45 Degree\n4: -45 Degree\n5: Exit\n Enter your choice : ');switch choice case 1 DH=imfilter(f,H); figure, imshow(f),title('Original Image'),figure,imshow(DH),title('Horizontal Line Detection'); case 2 DV=imfilter(f,V); figure, imshow(f),title('Original Image'),figure,imshow(DV),title('Vertical Line Detection'); case 3 D45=imfilter(f,P45); figure, imshow(f),title('Original Image'),figure,imshow(D45),title('45 Degree Line Detection'); case 4 DM45=imfilter(f,M45); figure, imshow(f),title('Original Image'),figure,imshow(DM45),title('-45 Degree Line Detection'); case 5 display('Program Exited'); otherwise display('\nWrong Choice\n');endend

Pendeteksian garis lurus dimulai dengan membaca citra yang akan dideteksi

dengan perintah imread, yaitu Read Image from Graphics File. Pada simulasi ini

digunakan bunga.jpg sebagai citra yang akan dideteksi. Selanjutnya citra diubah

menjadi presisi ganda, yaitu dengan menggunakan perintah im2double. Citra

bunga.jpg diambil sebagai masukan dan dikembalikan sebagai sebuah citra dengan

kelas ganda, dengan catatan bahwa perintah im2double ini dapat menskala ulang dan

meng-offset data jika memang diperlukan.

Kemudian dilakukan pendeteksian garis lurus berdasarkan jenis pendeteksian

yang dipilih. Adapun pendeteksian garis lurus yang disimulasikan pada pemrograman

ini ada empat, yaitu pendeteksian garis horizontal, vertikal, diagonal 450 dan diagonal

-450.

Pada masing-masing pendeteksian digunakan perintah yang sama, yaitu

imfilter. Perintah ini merupakan penapisan citra multidimensi (Multidimensional

image filtering). Misal : B = IMFILTER(A,H) berarti perintah tersebut menapis larik

multidimensional A dengan tapis multidimensional H sehingga B akan memiliki

ukuran dan kelas yang sama dengan A. Setiap elemen dari keluaran B dihitung

menggunakan titik ambang presisi ganda. Jika A adalah bilangan bulat atau larik

logika, maka elemen output melebihi kisaran dari jenis yang ditetapkan akan dipotong

dan nilai fraksionalnya akan dibulatkan.

Pada simulasi ini digunakan empat macam tapis multidimensi yang bersesuian

dengan jenis garis yang akan dideteksi. Hasil akan ditampilkan pada dua buah

gambar, yaitu gambar asli dan gambar hasil pendeteksian garis yang digunakan.

Sehingga terdapat empat pilihan pendeteksian, dan jika memilih selain itu simulasi

akan dihentikan.

3.2.1 Pendeteksian Garis Horisontal (Horizontal Line Detection)

Pada pendeteksian garis horisontal, digunakan tapis multidimensi berikut :

H=[-1 -1 -1; 2 2 2;-1 -1 -1]

Atau jika ditampilkan dalam MATLAB adalah

H =

-1 -1 -1

2 2 2

-1 -1 -1

Maka, pada pendeteksian garis horisontal, dilakukan penapisan citra asli

bunga.jpg oleh tapis H.

1: Horizontal2: Vertical3: 45 Degree4: -45 Degree5: Exit Enter your choice : 1

Pada simulasi ini ditampilkan citra asli dengan citra hasil pendeteksian garis

horisontal. Dari simulasi yang dilakukan, diperoleh hasil berikut:

Gambar 14. Citra asli bunga.jpg

Gambar 15. Citra hasil pendeteksian garis horisontal

Dari kedua gambar tersebut, dapat terlihat perbedaan yang jelas antara citra

asli dan citra yang diperoleh dari pendeteksian garis horisontal. Adanya perbedaan

tersebut dikarenakan citra hasil pendeteksian merupakan hasil penapisan citra asli,

bunga.jpg, menggunakan filter H.

3.2.2 Pendeteksian Garis Vertikal (Vertical Line Detection)

Pada pendeteksian garis vertikal, digunakan tapis multidimensi berikut :

V=[-1 2 -1;-1 2 -1;-1 2 -1]

Atau jika ditampilkan dalam MATLAB adalah

V =

-1 2 -1

-1 2 -1

-1 2 -1

Maka, pada pendeteksian garis vertikal, dilakukan penapisan citra asli

bunga.jpg oleh tapis V.

1: Horizontal2: Vertical3: 45 Degree4: -45 Degree5: Exit Enter your choice : 2

Pada simulasi ini ditampilkan citra asli dengan citra hasil pendeteksian garis

vertikal. Dari simulasi yang dilakukan, diperoleh hasil berikut:

Gambar 16. Citra asli bunga.jpg

Gambar 17. Citra hasil pendeteksian garis vertikal

Dari kedua gambar tersebut, dapat terlihat perbedaan yang jelas antara citra

asli dan citra yang diperoleh dari pendeteksian garis vertikal. Adanya perbedaan

tersebut dikarenakan citra hasil pendeteksian merupakan hasil penapisan citra asli,

bunga.jpg, menggunakan filter V.

3.2.3 Pendeteksian Garis Diagonal 450 (450 Line Detection)

Pada pendeteksian garis diagonal 450, digunakan tapis multidimensi berikut :

P45=[-1 -1 2;-1 2 -1;2 -1 -1];

Atau jika ditampilkan dalam MATLAB adalah

P45 =

-1 -1 2

-1 2 -1

2 -1 -1

Maka, pada pendeteksian garis diagonal 450, dilakukan penapisan citra asli

bunga.jpg oleh tapis P45.

1: Horizontal2: Vertical3: 45 Degree4: -45 Degree5: Exit Enter your choice : 3

Pada simulasi ini ditampilkan citra asli dengan citra hasil pendeteksian garis

diagonal 450. Dari simulasi yang dilakukan, diperoleh hasil berikut:

Gambar 18. Citra asli bunga.jpg

Gambar 19. Citra hasil pendeteksian garis diagonal 450

Dari kedua gambar tersebut, terdapat perbedaan yang jelas antara citra asli dan

citra yang diperoleh dari pendeteksian garis diagonal 450 dikarenakan citra hasil

pendeteksian merupakan hasil penapisan citra asli, bunga.jpg, menggunakan filter

P45.

3.2.4 Pendeteksian Garis Diagonal -450 (-450 Line Detection)

Pada pendeteksian garis diagonal -450, digunakan tapis multidimensi berikut :

M45=[2 -1 -1;-1 2 -1;-1 -1 2];

Atau jika ditampilkan dalam MATLAB adalah

M45 =

2 -1 -1

-1 2 -1

-1 -1 2

Maka, pada pendeteksian garis diagonal -450, dilakukan penapisan citra asli

bunga.jpg oleh tapis M45.

1: Horizontal2: Vertical3: 45 Degree4: -45 Degree5: Exit Enter your choice : 4

Pada simulasi ini ditampilkan citra asli dengan citra hasil pendeteksian garis

diagonal -450. Dari simulasi yang dilakukan, diperoleh hasil berikut:

Gambar 20. Citra asli bunga.jpg

Gambar 21. Citra hasil pendeteksian garis diagonal -450

Dari kedua gambar tersebut, terdapat perbedaan yang jelas antara citra asli dan

citra yang diperoleh dari pendeteksian garis diagonal -450 dikarenakan citra hasil

pendeteksian merupakan hasil penapisan citra asli, bunga.jpg, menggunakan filter

M45.

Dari keempat pendeteksian garis lurus, yaitu pendeteksian garis horisontal,

garis vertikal, dan garis diagonal baik 450 maupun -450, terdapat perbedaan. Berikut

hasil dari keempat pendeteksian garis tersebut :

-

(a) (b)

(c) (d)

Gambar 22 Citra hasil pendeteksian garis (a) horisontal (b) vertikal (c) diagonal 450 (d) diagonal -450

Pada pendeteksian garis horisontal, citra yang dihasilkan adalah penapisan dari

tapis H, dimana yang dilewatkan adalah bagian horisontal. Sehingga hasil

pendeteksian akan menunjukkan citra seperti Gambar 22(a). Sedangkan pada

pendeteksian garis vertikal, citra yang dihasilkan adalah penapisan dari tapis V,

dimana yang dilewatkan adalah bagian vertikal saja. Sehingga hasil pendeteksian

akan menunjukkan citra seperti Gambar 22(b).

Gambar 22(c) dan 22(d) menunjukkan citra yang dihasilkan dari pendeteksian

garis diagonal, dimana 22(c) menggunakan diagonal 450 sedangkan 22(d)

menggunakan diagonal -450. Pendeteksian garis diagonal akan melewatkan bagian

diagonal saja, tergantung berapa derajat kemiringan yang digunakan.

Program akan berhenti apabila dimasukkan pilihan selain 1, 2, 3 dan 4.

1: Horizontal2: Vertical3: 45 Degree4: -45 Degree5: Exit Enter your choice : 5Program Exited>>

Hasil pendeteksian ini belumlah maksimum. Hal ini dikarenakan belum dapat

mendeteksi warna dari citra secara keseluruhan. Selain itu, dengan adanya

keterbatasan fungsi penglihatan mata manusia, masih sulit dibedakan hasil

pendeteksian garis lurus tersebut apakah hasil pendeteksian garis horisontal, vertikal,

maupun diagonal.

Pemrograman pendeteksian garis lurus dapat ditingkatkan dengan beberapa

cara, diantaranya:

Mengimplementasikan suatu tapis kontras

Secara otomatis menghubungkan segmen garis lurus tersebut dengan

koordinat log-polar yang terpisah oleh jarak yang pendek.

Mempelajari sifat-sifat statistik warna untuk memperbaiki penetapan batas

ambang

4. Penutup

4.1 Kesimpulan

1. Deteksi tepi (Edge Detection) pada suatu citra adalah suatu proses

yang menghasilkan tepi-tepi dari obyek-obyek citra.

2. Jika metode penapisan run length vertikal maksimum dipilih, atur

semua masukan dari selected yang sesuai dengan pixel yang

bersebelahan secara iterative pada dimensi vertikal langsung, yaiu

memiliki run length vertikal, melebihi batas ambang yang ditetapkan

menjadi false.

3. Pada pendeteksian garis horisontal, citra yang dihasilkan adalah

penapisan dari tapis H, dimana yang dilewatkan adalah bagian

horisontal.

4. Jika metode penapisan run length horisontal minimum dipilih, atur

semua masukan dari selected yang sesuai dengan pixel yang

bersebelahan secara iterative pada dimensi horisontal langsung, yaitu

memiliki run length horisontal, kurang dari batas ambang pixel yang

ditetapkan menjadi false.

5. Citra hasil pendeteksian merupakan hasil penapisan citra asli

menggunakan filter V.

6. Jika metode penapisan run length diagonal dipilih, atur semua

masukan dari selected yang sesuai dengan pixel yang bersebelahan

secara iterative pada dimensi diagonal langsung, yaitu memiliki run

length diagonal, kurang dari atau lebih dari batas ambang pixel yang

ditetapkan menjadi false. Untuk diagonal positif, kurang dari batas

ambang pixel yang ditetapkan menjadi false. Untuk diagonal negatif,

lebih dari batas ambang pixel yang ditetapkan menjadi false.

7. Pendeteksian garis diagonal akan melewatkan bagian diagonal saja,

tergamtung berapa derajat kemiringan yang digunakan.

4.2 Saran

Untuk pemrograman pendeteksian garis lurus mendatang, sebaiknya lebih

ditingkatkan, diantaranya:

Mengimplementasikan suatu tapis kontras

Secara otomatis menghubungkan segmen garis lurus tersebut dengan

koordinat log-polar yang terpisah oleh jarak yang pendek.

Mempelajari sifat-sifat statistik warna untuk memperbaiki penetapan batas

ambang

Daftar Pustaka

[1] Rinaldi Munir, Pengolahan Citra Digital dengan Pendekatan Algoritmik,

Informatika, Bandung, 2004.

[2] Weiman, C.F.R. and Chaikin, G., Logarithmic spiral grids for image Processing

and display. Computer Graphics and Image Processing, 1979.

[3] Young, D.S., Logarithmic sampling of images for computer vision. In Cohn, T.

(ed) Proc. of the 7th Conf. of the Society for the Study of Artificial Intelligence

and Simulation of Behaviour, pp 145-150, 1989.

[4] Gonzales, R.C. and P. Wintz, Digital Image Processing, Addition Wesley,1987.

[5] Konrad Schindler, Construction and detection of straight lines, distances, and

circles in log-polar images.