Selasa, 17 November 2009

Deteksi Tepi Menggunakan Metode Robert, Sobel, Prewitt, dan Laplacian

Tepi (Edge) Adalah perubahan nilai intensitas derajat keabuan yang cepat atau tiba-tiba (besar) dan dalam jarak yang singkat.

Deteksi tepi (Edge Detection) pada suatu citra adalah suatu proses yang menghasilkan tepi-tepi dari obyek-obyek citra, tujuannya adalah :
• 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.


Teknik yang digunakan untuk pendeteksian tepi antara lain :
-Operator Gradien Utama (Differential Gradien)
-Operator Turunan Kedua (Laplacian)
-Operator Kompas ( Compas Opertor)

Pada pembuatan program ini kita akan membahas deteksi tepi pada Operator Gradien Utama dan Operator Turunan Kedua. Operator gradien utama terdiri dari 3 metode yaitu :

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. Metode Robert ini juga disamakan dengan teknik DPCM (Differential Pulse Code Modulation)

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.

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.

Sedangkan pada operator turunan kedua terdapat metode laplacian

Untuk langkah persiapan terdapat pada tulisan blog sebelumnya dengan judul "histogram". Syntax yang digunakan untuk pendeteksian tepi dengan metode robert, prewitt, dan sobel serta teknik turunan kedua laplacian. berikut adalah listing program dan output program.

Listing program

clear all;
l=imread('Humpback Whale.jpg');
l1=rgb2gray(l);
l2=fft(double(l1));
l2_1=fft(double(l));
figure(1)
clf(subplot(3,2,1),imshow(l));
title('Original image');
hold on;
subplot(3,2,2),imshow(l1);
title('Gray scale image ');
% creat filter matrix(3x3 window)
h=fspecial('prewitt');
l_pre=uint8(round(filter2(h,l1)));
l_pre_1=fft(double(l_pre));
subplot(3,2,3),imshow(l_pre)
title('Prewitt filtered image');
% creat filter matrix(3x3 window)
h=fspecial('sobel');
l_sobel=uint8(round(filter2(h,l1)));
l_sobel_1=fft(double(l_sobel));
subplot(3,2,4),imshow(l_sobel)
title('Sobel filtered image');
h=fspecial('log',5);
l_log=uint8(round(filter2(h,l1)));
l_log_1=fft(double(l_log));
subplot(3,2,5),imshow(l_log)
title('5x5 Laplacian of Guassian Filtered Image');
h=fspecial('log',3);
l_log3=uint8(round(filter2(h,l1)));
l_log3_1=fft(double(l_log3));
subplot(3,2,6),imshow(l_log3)
title('3x3 Laplacian of Guassian Filtered Image');
%suitable images are TIFF images ,png,jpgonly bmp is not suitable.
figure(2)
subplot(3,2,1),imshow(l2);
subplot(3,2,2),imshow(l2);
subplot(3,2,3),imshow(l_pre_1);
subplot(3,2,4),imshow(l_sobel_1);
subplot(3,2,5),imshow(l_log_1);
subplot(3,2,6),imshow(l_log3_1);


Output Program






Histogram

Pada Penulisan Blog kali ini saya ingin membuat program dan membuat analisa perubahan suatu citra atau gambar kedalam bentuk histogram

sebelum kita masuk masuk ke program saya akan menjelaskan apa yang dimaksud dengan citra dan histogram itu sendiri.

Citra mungkin klw kita mengetahui banyak orang yang bilang bahwa citra itu sama dengan gambar, foto, atau hal apapun yang ada gambarny, padahal klw mnurut ilmu nyang benernya klw citra itu merupakan fungsi malar (kontinyu) dari intensitas cahaya. Secara matematisdisimbulkandengan f(x,y), dimana :

(x,y) : koordinat pada bidang dwi warna
F(x,y) : intensitas cahaya pada titik (x,y)

Nilai f(x,y) adalah hasil kali dari :
i(x,) = jumlah cahaya yang berasal dari sumber, nilainya antara 0 sampai tak terhingga
r(x,y) = derajat kemampuan objek memantulkan cahaya , nilainya antara 0 dan 1
Jadi f(x,y) = i(x,y) . r(x,y)

Ribet ya kalau bahasa jermannya artinya klw citra itu merupakan merupakan kumpulan intensi
tas suatu cahaya yang berkelanjutan dan dipengaruhi oleh cahaya pada yang menimpa objek.
Nah kurang lebih gtu lah bahasa jermanya.

Lanjut kita ke histogram. Histogram adalah diagram yang menunjukkan jumlah kemunculan grey
level (0-255) pada suatu citra. jadi histogram itu merupakan diagram yang digunakan untuk
menghitung jumlah kemunculan suatu warna pada suatu citra.

kemudian histogram prosessing

Gambar gelap: histogram cenderung ke sebelah kiri

Gambar terang: histogram cenderung ke sebelah kanan

Gambar low contrast: histogram mengumpul di suatu tempat

Gambar high contrast: histogram merata di semua tempat

Histogram processing: mengubah bentuk histogram agar pemetaan gray level


Biar ga tambah bingung kita akan langsung menuju kepada program :
Pembuatan program ini saya menggunakan software matlab 7.0 hal ini dikarenakan bahwa matlab
biasa digunakan untuk beberapa fungsi matematika jadi saya membuat program ini menggunakan
matlab.

Persiapan dan langkah-langkah :
Instalasi Software Matlab
Kemudian jalankan software matlab
Kemudian pilih menu bar file-new-m file
Setelah itu akan muincul text editor untuk mengetikan sintaks program
Kemudian ketikan listing seperti pada lampiran listing dibawah nanti
Setelah iti jalankan program dangan pilih menu bar debug-run atau ketik F5 pada keyboad maka
akan tampil output seperti lampiran output dibawah nanti

Dibawah ini adalah listing program
clear all;
close all;
l=imread('01SC087.JPG');
l1=rgb2gray(l);
figure(1)
subplot(1,2,1)
imshow(l1)
title('Original Image');
[counts x]=imhist(l1);
counts1=counts(2:256-1,:);
x1=[2:1:255];
h=hist(counts1,x1);
p=histeq(l1,h);
subplot(1,2,2)
imshow(p);
title('Processed Image');
hold on;
figure(2)
subplot(1,2,1)
imhist(l1)
title('Histogram of Original Image');
subplot(1,2,2)
imhist(p)
title('Histogram of Processed Image');
hold on;
k=mean2(l1);
k2=mean2(p);
dev=std2(l1);
dev1=std2(p);
[co xi]=imhist(l1,8);
[co1 xi1]=imhist(p,8);
m=mean2(xi);
m2=mean2(xi1);
stdev=std2(xi);
stdev1=std2(xi1);
disp('********Comparison of Mean and Standard Deviation for Whole Image and 8x8 Block*********');
disp('Original Image');
disp('Mean of Whole Image=')
disp(k);
disp('Mean for 8x8 Sub-Block of Intensities=');
disp(m);
disp('Standard Deviation of Whole Image=')
disp(dev);
disp('Standard Deviation for 8x8 Sub-Block of Intensities=');
disp(stdev);
disp('Processed Image');
disp('Mean of Whole Image=')
disp(k2);
disp('Mean for 8x8 Sub-block of Intensities=');
disp(m2);
disp('Standard Deviation of Whole Image=')
disp(dev1);
disp('Standard Deviation for 8x8 Sub-block of Intensities=');
disp(stdev1);

Output Program

Pada tampilan pertama sebelah kiri adalah citra yang original dan yang sebelah kanan adalah citra yang telah di telah di proses enhancement akan terlihat pada tampilan histogram pada tampilan kedua histogram cenderung kesebalah kiri artinya citra gelap. tampilan kedua adalah histogram masing-masing citra.

Mukadimah


Assalamualaikum semua


baru belajar buat blog nich ane semoga blog ini dapat bermanfaat buat semua..amin

enjoy

Mukadimah

Baru pertama buat blog
hehehe...

Semoga bermanfaat ya..