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.
Top Related