PRAKTIKUM
KOMPUTER VISION
Oleh:
SAMARINDA
2019
LEMBAR ASISTENSI
PRAKTIKUM KOMPUTER VISION
MODUL IV
1.
2.
3.
4.
5.
Dosen Pengampu,
Terminologi lain yang berkaitan erat dengan pengolahan citra adalah computer vision
atau machine vision. Pada hakikatnya, computer vision mencoba meniru cara kerja
sistem visual manusia (human vision). Human vision sesungguhnya sangat kompleks.
Manusia melihat objek dengan indera penglihatan (mata), lalu citra objek diteruskan
ke otak untuk diinterpretasi sehingga manusia mengerti objek apa yang tampak dalam
pandangan matanya. Hasil interpretasi ini mungkin digunakan untuk pengambilan
keputusan (misalnya menghindar kalau melihat mobil melaju di depan).
Gambar tersebut akan diproses dengan aplikasi matlab dengan menampilkan hasil
Deteksi Tepi dari gambar tersebut. Gambar akan dirubah menjadi ukuran piksel yang
lebih kecil agar memudahkan dalam analisis hasil dari Deteksi Tepi tersebut.
4.2.1 Source Code
clear all;
[filename,pathname] = uigetfile({'*.jpg;*.bmp'},'Select an Image');
I = imread([pathname filename]);
G=imresize(I,[500,500]);
gray=rgb2gray(G);
a = edge(gray,'canny');
b = edge(gray, 'sobel');
c = edge(gray, 'roberts');
d = edge(gray, 'prewitt');
subplot(2,3,1);
imshow(gray);
title('Citra Asli');
subplot(2,3,2);
imshow(a);
title('Canny');
subplot(2,3,3);
imshow(b);
title('Sobel');
subplot(2,3,4);
imshow(c);
title('Roberts');
subplot(2,3,5);
imshow(d);
title('Prewitt');
4.2.2 Interface
A. Canny
Canny merupakan deteksi tepi yang optimal. Operator Canny menggunakan Gaussian
Derivative Kernel untuk menyaring kegaduhan dari citra awal untuk mendapatkan hasil
deteksi tepi yang halus. Pada gambar 4.2, hasil dari operator Canny sangat jelas sekali.
Seluruh tepi pada gambar terdeteksi, walaupun tepi itu berwarna putih sekalipun.
Seluruh tepi pada setiap boundary akan berwarna putih, sedangkan yang bukan garis
tepi akan berwarna hitam. Gambar nampak berubah menjadi biner. Susunan matriksnya
pun hanya terdiri dari 0 dan satu. -0 untuk warna hitam dan 1 untuk warna putih.
B. Sobel
Metode Sobel mengambil prinsip dari fungsi laplace dan gaussian yang dikenal
sebagai fungsi untuk membangkitkan HPF, dan kelebihan dari metode sobel ini adalah
mengurangi noise sebelum melakukan perhitungan deteksi tepi. Pada gambar 4.4,
deteksi tepi dengan metode Sobel hanya mendeteksi tepi warna yang gelap, hitam serta
abu-abu. Bisa dikatakan deteksi tepi dengan metode ini dapat mengurangi noise.
Sehingga untuk tepi warna putih tidak akan terdeteksi. Gambar juga akan menjadi
biner. Matriks penyusunnya juga hanya terdiri dari 0 dan 1.
Gambar 4.4 Hasil deteksi tepi menggunakan operator Sobel
C. Roberts
Metode Robert adalah nama lain dari teknik differensial pada arah horisontal dan
differensial pada arah vertikal, dengan ditambahkan proses konversi biner setelah
dilakukan differensial. Maksud konversi biner adalah meratakan distribusi warna hitam
dan putih. Pada gambar 4.4, nampak garis tepi yang dideteksi oleh metode Roberts
cenderung lebih sedikit dari metode lain. Hanya garis tepi yang berwarna hitam yang
akan terdeteksi dan berubah menjadi putih. Gambar lain akan menjadi hitam. Deteksi
tepi tipe ini memiliki noise yang sangat kecil, gambar juga masih tampak jelas.
D. 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. HPF (High pass
filter) adalah proses filter yang mengambil citra dengan gradiasi intensitas yang tinggi
dan perbedaan intensitas yang rendah akan dikurangi atau dibuang. Jadi hanya tepi
yang mempunyai perbedaan yang tinggi yang akan diambil. Pada gambar 4.4, tepi yang
terdeteksi hanya hitam, namun berbeda dengan metode Roberts, metode ini lebih
banyak mengambil tepi yang intensitasnya tinggi. Lalu gambar akan dirubah menjadi
biner.
Gambar tersebut akan diproses dengan aplikasi matlab dengan melakukan segmentasi
pada gambar tersebut. Hasil dari segmentasi akan dijelaskan dalam pembahasan.
2.3.1 Source Code
clear;
clc;
[filename,pathname] = uigetfile({'*.jpg;*.bmp;*.png'},'Select an
Image');
Im = imread([pathname filename]); % Baca file citra format dan
simpan pada matriks I
figure(1), imshow(uint8(Im));title('Citra Asli');
Th_HSV=0.5; % tentukan nilai threshold 0.2 0.3 0.4
Th_RGB=5;% tentukan nilai threshold 2 3 4
p = impoint(gca,[]); % pembacaan posisi pixel
p = wait(p); % klik 2 kali pada warna area
x=round(p(1,1)); % yang ingin disegmentasi
y=round(p(1,2));
RGB=Im(y,x,:); % warna referensi ruang RGB
R=RGB(:,:,1);
G=RGB(:,:,2);
B=RGB(:,:,3);
% Konversi warna pixel referensi
HSV=rgb2hsv(RGB);
H1=HSV(:,:,1); % warna referensi ruang HSV
S1=HSV(:,:,2);
V1=HSV(:,:,3);
% Konversi Citra ke ruang warna HSV dan HCL
citra_hsv=rgb2hsv(Im);
[m,n,l]=size(citra_hsv); % ukuran citra
% Inisialisasi matriks citra hasil
cit_hasilHSV(1:m,1:n,1:l)= uint8(0);
cit_hasilRGB(1:m,1:n,1:l)= uint8(0);
for i=1:m
for j=1:n
% hitung jarak warna RGB
dR=(abs(Im(i,j,1)-R))^2;
dG=(abs(Im(i,j,2)-G))^2;
dB=(abs(Im(i,j,3)-B))^2;
check=sqrt(double(dR+dG+dB));
if (check<=Th_RGB) % warna similar?
cit_hasilRGB(i,j,:)= Im(i,j,:);
end
% hitung jarak warna HSV
dH=citra_hsv(i,j,1)-H1;
S2=citra_hsv(i,j,2);
dV=(citra_hsv(i,j,3)-V1)^2;
Dcyl=sqrt(double((dV +(S1^2)+(S2^2)) - (2*S1*S2*cos(dH))));
if (Dcyl <=Th_HSV) % warnanya similar?
cit_hasilHSV(i,j,:)= Im(i,j,:);
end
end;
end;
Pada saat merubah nilai threshold, maka ukuran dari segmentasi akan berbeda pula.
Semakin besar nilai threshold, maka semakin besar pula area yang akan dilakukan
segmentasi. Bisa dikatakan area warna hitam akan semakin luas. Metode segmentasi
ini sangat berguna untuk memisahkan piksel warna tertentu agar gambar itu dapat
dikategorikan ke beberapa piksel gambar nantinya.
DAFTAR PUSTAKA
Rafael C. Gonzalez dan Richard E Woods. 2017. Digital Image Processing. Pearson:
London.