Pengolahan Citra Digital Untuk Mendeteksi Bentuk dan Warna Objek Dengan Jaringan Syaraf Tiruan pada Matlab
Kecerdasan
Buatan
Pengolahan Citra Digital
Untuk Mendeteksi Bentuk dan Warna Objek Dengan Jaringan Syaraf Tiruan pada
Matlab
Disusun
oleh
:
1.
Ahmad
Faidul Basyar (2014-530-18)
2.
Nailul
Lutfah (2014-530-57)
3.
Lia Chamidah (2014-530-63)
Kelas :
B
Progam Studi :
Sistem Informasi
FAKULTAS TEKNIK
UNIVERSITAS MURIA KUDUS
2014
BAB 1
PENDAHULUAN
1.1
Latar Belakang
Seiring
dengan perkembangan zaman, teknologi
yang menggunakan komputer berkembang dengan pesat. Hampir setiap individu di dunia
memerlukan komputer sebagai alat bantu
untuk me nyelesaikan masalahnya. Hampir
semua sistem analog digantikan dengan
sistem komputerisasi. Keunggulannya adalah sistem komputerisasi lebih mudah dalam pengontrolan.
Dalam hal ini misalnya pengontrolan di dalam
mengidentifikasi suatu objek atau citra. Komputer diusahakan untuk dapat bekerja
mendekati proses kerja otak manusia.
Pengolahan
citra digital (Digital Image Processing) adalah sebuah disiplin ilmu
yang mempelajari tentang teknik-teknik mengolah citra. Citra yang dimaksud
disini adalah gambar diam (foto) maupun gambar bergerak (yang berasal dari
webcam). Sedangkan digital disini mempunyai maksud bahwa pengolahan
citra/gambar dilakukan secara digital menggunakan komputer. Secara matematis,
citra merupakan fungsi kontinyu (continue) dengan intensitas cahaya pada bidang
dua dimensi. Agar dapat diolah dengan komputer digital, maka suatu citra harus
dipresentasikan secara numerik dengan nilai-nilai diskrit. Repersentasi dari
fungsi kontinyu menjadi nilai-nilai diskrit disebut digitalisasi citra.
Salah satu bidang yang berkaitan dengan pengolahan
citra adalah pengenalan pola atas objek dua
dimensi. Penelitian ini dilakukan untuk menghasilkan suatu sistem yang dapat mengidentifikasi dan
mengenali suatu objek atau pola sederhana, seperti lingkaran, bujur sangkar,
persegi panjang, dan segitiga,
berdasarkan bentuk dan ukurannya.Dengan
menggunakan sistem tersebut diharapkankomputer
dapat mengenali objek objeksederhana yang dimasukkan.
Kemampuan
inilah yang akan kami tiru dengan menggunakan
mesin (komputer). Komputer menerima
masukan yang berupa citra objek yang kemudian citra tersebut akan diproses, diidentifikasi dan diberikan keluaran berupa deskripsi objek
di dalam citra.
1.2
Dasar Teori
1.2.1
Pengertian Citra
Digital
Citra
merupakan salah satu komponen multimedia yang memegang peranan penting sebagai
bentuk informasi visual, karena karakteristiknya yang kaya dengan informasi.
Secara harfiah, citra adalah gambar pada bidang dwimatra (dua dimensi). Secara
matematis citra adalah gambar pada bidang dwimatra (dua dimensi) yang
dihasilkan dari gambar analog dua dimensi yang kontinus menjadi gambar diskret
melalui proses sampling. Pengolahan citra digital
(Digital Image Processing) adalah sebuah disiplin ilmu yang mempelajari tentang
teknik-teknik mengolah citra. Citra yang dimaksud pada penelitian ini adalah
gambar statis yang berasal sensor vision berupa webcam. Secara matematis, citra
merupakan fungsi kontinyu dengan intensitas cahaya pada bidang dua dimensi.
Agar dapat diolah dengan komputer digital, maka suatu citra harus
dipresentasikan secara numerik dengan nilai-nilai diskrit. Sebuah citra digital
dapat diwakili oleh sebuah matriks dua dimensi f(x,y) yang terdiri dari M kolom
dan N baris. Pada pengolahan warna gambar, ada bermacam-macam model salah
satunya adalah model rgb atau normalisai RGB. Model pengolahan ini merupakan
pengolahan warna dengan menghitung prosentase warna RGB dalam sebuah citra.
Dengan menggunakan model ini, sebuah obyek dengan warna tertentu dapat dideteksi
dan terbebas dari pengaruh perubahan intensitas cahaya dari luar. Kelemahan
dari pengolahan warna model ini adalah tidak dapat membedakan warna hitam dan
putih, karena memiliki prosentase nilai RGB yang sama yaitu 33%. Guna melihat
pengaruh pendeteksian obyek terhadap perubahan intensitas cahaya maka nilai
brightness diubah-ubah. Berdasarkan hasil tersebut pada saat nilai brightness
antara 1 – 80 obyek target yang diinginkan masih dapat dideteksi.
1.2.2
Pengolahan Citra Digital
Pengolahan
citra adalah pemrosesan citra, khususnya
dengan menggunakan komputer, menjadi citra yang kualitasnya lebih baik. Tujuan
utama pengolahan citra adalah agar citra yang mengalami gangguan mudah diinterpretasi
oleh manusia maupun mesin (komputer). Teknik pengolahan citra digital adalah
mentransformasikan citra dua dimensi menjadi citra lain dengan mengunakan komputer.
Proses ini mempunyai ciri data masukan dan informasi keluaran yang berbentuk
citra. Jadi masukannya berupa citra dan keluarannya juga berbentuk citra, dengan
kualitas yang lebih baik dari citra masukan. Beberapa contoh operasi pengolahan
citra adalah pengubahan kontras citra, penghilangan derau (noise) dengan
operasi penapisan (filtering), penajaman (sharpening), pemberian warna semu
(pseudocoloring), dan sebagainya. Operasi operasi tersebut akan diterapkan pada
pengolahan citra apabila:
1. Digunakan untuk meningkatkan kualitas penampakan
atau menonjolkan beberapa aspek informasi yang terkandung dalam citra dengan perbaikan
atau modifikasi citra
2. Perlu pengelompokkan, pencocokan atau pengukuran
elemen pada citra.
3. Perlu
penggabungan sebagian citra dengan bagian citra lainnya.Dalam bidang komputer,
tidak hanya bidang studi pengolahan citra yang berhubungan dengan data citra,
namun ada bidang studi lain.
1.3 Pengertian Matlab
Matlab adalah sebuah bahasa dengan kinerja
tinggi untuk komputasi masalah teknik. Matlab mengintegrasikan komputasi,
visualisasi, dan pemrograman dalam suatu model yang sangat mudah untuk pakai
dimana masalah-masalah dan penyelesaiannya diekspresikan dalam notasi
matematika yang familiar. Penggunaan Matlab meliputi : Matematika dan
komputasi, Pembentukan algoritma, Akusisi data, Pemodelan, simulasi, dan
pembuatan prototype, Analisa data, explorasi, dan visualisasi, Grafik
keilmuan dan bidang rekayasa.
Matlab
memungkinkan manipulasi matriks, pem-plot-an fungsi dan data,
implementasi algoritma,
pembuatan antarmuka
pengguna, dan peng-antarmuka-an dengan program dalam bahasa lainnya. Meskipun
hanya bernuansa numerik, sebuah kotak kakas (toolbox) yang menggunakan
mesin simbolik MuPAD, memungkinkan akses
terhadap kemampuan aljabar komputer. Sebuah paket tambahan, Simulink,
menambahkan simulasi grafis multiranah dan Desain
1.4
Citra Biner
Citra biner
adalah citra yang hanya mempunyai dua nilai derajat keabuan yaitu, hitam dan
putih. Piksel piksel objek bernilai ‘1’ dan piksel piksel latar belakang
bernilai ‘0’. Pada saat menampilkan gambar, ‘0’ adalah putih dan ‘1’ adalah
hitam. Meskipun saat ini citra berwarna lebihdisukai karena memberi kesan yang
lebih kaya daripada citra biner, namun tidak membuat citra biner mati. Pada
beberapa aplikasi citra biner masih tetap dibutuhkan, misalnya citra logo instansi,
citra kode batang (barcode) yang tertera pada label barang, citra hasil
pemindai dokumen teks,dan sebagainya. Adapun alasan penggunaan citra biner
adalah karena citra biner masih memiliki keunggulan sebagai berikut:
1.
Kebutuhan memori kecil karena nilai
derajat keabuan hanya membutuhkan representasi 1 bit.
2.
Waktu pemrosesan lebih cepat
dibandingkan dengan citra aras keabuan (greyscale).
1.5 Pengertian Ciri (Feature) dan Pola (Pattern)
Ciri adalah segala jenis aspek pembeda, kualitas atau
karakteristik. Cirbisa berwujud simbolik (misalnya warna) atau numerik
(misalnya tinggi). Ciri yang bagus adalah ciri yang memiliki daya pembeda yang
tinggi, sehingga pengelompokan pola berdasarkan ciri yang dimiliki dapat
dilakukan dengan keakuratan yang tinggi. Sebagai contoh, segitiga yang memiliki
ciri yaitu: memiliki tiga buah titik sudut, atau lingkaran yang memiliki ciri
yaitu: jari-jari yang besarnya konstan. Citra pada suatu pola diperoleh dari hasil
pengukuran terhadap objek uji. Khusus pada pola yang didapat di dalam citra,
ciri-ciri yang diperoleh berasal dari:
a) Spasial: intensitas piksel, histogram dan
sebagainya.
b) Tepi: Arah, kekuatan dan sebagainya.
c) Kontur: garis, elips, lingkaran dan sebagainya.
d) Wilayah/bentuk: keliling, luas dan sebagainya.
e) Hasil Transformasi Fourier: frekuensi dan
sebagainya
BAB II
ANALISA ALGORITMA
2.1 Pengertian Perceptron dalam Matlab
Model jaringan perceptron ditemukan Rosenblatt (1962)
dan Minsky-Papert (1969). Model tersebut merupakan model yang memiliki aplikasi
dan pelatihan yang paling baik pada era tersebut. Arsitetktur jaringan
perceptron mirip dengan arsitektur jaringan Hebb.
Model perceptron dalam Matlab sedikit berbeda dengan
penjelasan perceptron manual. Dalam Matlab, default sistem yang dipakai adalah
sebagai berikut :
· Masukan dan
target yang dipakai berbentuk bebas ( tidak harus biner / bipolar )
· Threshold
yang dipakai adalah 0
· Fungsi
aktivasi memiliki output berupa biner ( bukan -1, 0, 1 seperti penjelasan
sebelumnya), sehingga :
f
(net)
· Tidak
menggunakan laju pemahaman (α). Bobot diubah berdasarkan erroor yang
terbentuk dari selisih antara target yang diinginkan dengan keluaran jaringan (
f (net) ). Perubahan bobot bukan merupakan hasil kali antara target dengan
masukan.
A. Menghitung f(net)/a dengan sintak “sim”
- Rumus “sim”
- Tabel 13.2
B. Menghitung Perceptron dengan sintak “learnp”
- And, Or, XAnd,XOr (input+output)
C. Menghitung Perceptron dengan sintak
“train”
- And, Or, XAnd,XOr (input+output+grafik)
Ada beberapa
hal yang perlu diperhatikan dalam algoritma tersebut :
a. Iterasi dilakukan terus menerus
hingga semua pola memiliki keluaran jaringan yang sama dengan targetnya ( y = t
).
b. Pada langkah 2(c), perubahan bobot
hanya dilakukan pola yang mengandung kesalahan (y ≠ t). Perubahan tersebut
merupakan hasil kali unit masukan dengan target dan laju pemahaman (∆w = xi
t α). Perubahan bobot hanya akan terjadi kalau unit masukan ≠ 0.
c. Kecepatan iterasi ditentukan pula
oleh α (dengan 0 ≤ α ≤ 1) yang dipakai. Semakin besar harga α, maka akan
semakin sedikit iterasi yang diperlukan. Namun apabila harga α terlalu besar,
maka akan merusak pola yang sudah benar sehingga pemahaman menjadi lambat.
BAB III
IMPLEMENTASI
Implementasi
dilakukan dengan menggunakan software Matlab 7.10.0 (R2010a).
Gambar
4.1 : Matlab R2010a.
Langkah – langkah
Implementasi :
1.
Buka Matlab lalu pilih “File” Ã “New” Ã “GUI”.
Gambar
4.2 : Buat GUI.
2.
Pilih Tab “Create New GUI” pilih
“Blank GUI” Ã “OK”.
Gambar
4.3 : Pilih Jenis GUI.
3.
Buat GUI seperti gambar berikut
lalu simpan dengan nama “Color_and_Shape_Detection”.
Gambar
4.4 : Tampilan GUI.
4.
Pilih “File” Ã “New” Ã
“Function”, tuliskan kode dibawah ini lalu simpan dengan nama “Color_and_Shape_Detection”.
Gambar
4.5 : Kode fungsi utama.
function
varargout = Color_and_Shape_Detection(varargin)
% Nama Kelompok :
% 201453018 - AHMAD FAIDUL BASYAR
% 201453057 - NAILUL LUTFAH
% 201453063 - LIA CHAMIDAH
%
COLOR_AND_SHAPE_DETECTION MATLAB code for Color_and_Shape_Detection.fig
% COLOR_AND_SHAPE_DETECTION, by itself,
creates a new COLOR_AND_SHAPE_DETECTION or raises the existing
% singleton*.
%
% H = COLOR_AND_SHAPE_DETECTION returns the
handle to a new COLOR_AND_SHAPE_DETECTION or the handle to
% the existing singleton*.
%
%
COLOR_AND_SHAPE_DETECTION('CALLBACK',hObject,eventData,handles,...)
calls the local
% function named CALLBACK in
COLOR_AND_SHAPE_DETECTION.M with the given input arguments.
%
% COLOR_AND_SHAPE_DETECTION('Property','Value',...)
creates a new COLOR_AND_SHAPE_DETECTION or raises the
% existing singleton*. Starting from the left, property value pairs
are
% applied to the GUI before
Color_and_Shape_Detection_OpeningFcn gets called. An
% unrecognized property name or invalid value
makes property application
% stop.
All inputs are passed to Color_and_Shape_Detection_OpeningFcn via
varargin.
%
% *See GUI Options on GUIDE's Tools
menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See
also: GUIDE, GUIDATA, GUIHANDLES
% Edit the
above text to modify the response to help Color_and_Shape_Detection
% Last
Modified by GUIDE v2.5 12-Oct-2016 13:44:54
% Begin
initialization code - DO NOT EDIT
gui_Singleton =
1;
gui_State =
struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn',
@Color_and_Shape_Detection_OpeningFcn, ...
'gui_OutputFcn', @Color_and_Shape_Detection_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin
&& ischar(varargin{1})
gui_State.gui_Callback =
str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] =
gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization
code - DO NOT EDIT
% ---
Executes just before Color_and_Shape_Detection is made visible.
function
Color_and_Shape_Detection_OpeningFcn(hObject, eventdata, handles, varargin)
% This
function has no output args, see OutputFcn.
%
hObject handle to figure
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
%
varargin command line arguments to
Color_and_Shape_Detection (see VARARGIN)
% Choose
default command line output for Color_and_Shape_Detection
handles.output =
hObject;
% Update
handles structure
guidata(hObject,
handles);
movegui(hObject,'center');
% UIWAIT
makes Color_and_Shape_Detection wait for user response (see UIRESUME)
%
uiwait(handles.figure1);
% ---
Outputs from this function are returned to the command line.
function
varargout = Color_and_Shape_Detection_OutputFcn(hObject, eventdata, handles)
%
varargout cell array for returning
output args (see VARARGOUT);
%
hObject handle to figure
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
% Get
default command line output from handles structure
varargout{1} =
handles.output;
% ---
Executes on button press in pushbutton1.
function
pushbutton1_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton1 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
[filename,pathname]
= uigetfile('*.jpg');
if
~isequal(filename,0)
Img = imread(fullfile(pathname,filename));
axes(handles.axes1)
imshow(Img)
title(filename);
% Color Detection
[m,n,~] = size(Img);
hsv = rgb2hsv(Img);
H = hsv(:,:,1);
for y = 1:m
for x = 1:n
h = H(y,x);
% Ubah
warna
if h <
11/255 % merah
h = 0;
elseif h <
32/255 % jingga
h = 21/255;
elseif h <
54/255 % kuning
h = 43/255;
elseif h <
116/255 % hijau
h = 85/255;
elseif h <
141/255 % cyan
h = 128/255;
elseif h <
185/255 % biru
h = 170/255;
elseif h <
202/255 % ungu
h = 191/255;
elseif h <
223/255 % magenta
h = 213/255;
elseif h <
244/255 % merah
muda
h = 234/255;
else
h = 0; % merah
end
% Ubah
komponen H
H(y,x) = h;
end
end
% Shape Detection
gray = rgb2gray(Img);
threshold = .8;
bw = ~im2bw(gray,threshold);
bw = imfill(bw,'holes');
[B,L] = bwboundaries(bw,'noholes');
stats = regionprops(L,'All');
class = zeros(12,1);
for k = 1:length(B)
boundary = B{k};
delta_sq = diff(boundary).^2;
perimeter = sum(sqrt(sum(delta_sq,2)));
area = stats(k).Area;
eccentricity = stats(k).Eccentricity;
metric = 4*pi*area/perimeter^2;
if metric<0.56
class(k,1) = 1;
elseif metric<0.89
if
eccentricity>0.04 && eccentricity <0.05
class(k,1) = 2;
else
class(k,1) = 3;
end
else
class(k,1) = 4;
end
end
handles.Img = Img;
handles.H = H;
handles.class = class;
handles.bw = bw;
guidata(hObject, handles)
else
return
end
% ---
Executes on button press in pushbutton2.
function
pushbutton2_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton2 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
Img =
handles.Img;
H = handles.H;
H_aksen =
H==0/255;
H_aksen =
logical(H_aksen);
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R(~H_aksen) =
255;
G(~H_aksen) =
255;
B(~H_aksen) =
255;
RGB =
cat(3,R,G,B);
axes(handles.axes2)
imshow(RGB);
title('Hasil
Deteksi Warna')
% ---
Executes on button press in pushbutton3.
function
pushbutton3_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton3 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
Img =
handles.Img;
H = handles.H;
H_aksen =
H==21/255;
H_aksen =
logical(H_aksen);
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R(~H_aksen) =
255;
G(~H_aksen) =
255;
B(~H_aksen) =
255;
RGB =
cat(3,R,G,B);
axes(handles.axes2)
imshow(RGB);
title('Hasil
Deteksi Warna')
% ---
Executes on button press in pushbutton4.
function
pushbutton4_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton4 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
Img =
handles.Img;
H = handles.H;
H_aksen =
H==85/255;
H_aksen =
logical(H_aksen);
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R(~H_aksen) =
255;
G(~H_aksen) =
255;
B(~H_aksen) =
255;
RGB =
cat(3,R,G,B);
axes(handles.axes2)
imshow(RGB);
title('Hasil
Deteksi Warna')
% ---
Executes on button press in pushbutton5.
function
pushbutton5_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton5 (see
GCBO)
%
eventdata reserved - to be defined in a future
version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
Img =
handles.Img;
H = handles.H;
H_aksen =
H==170/255;
H_aksen =
logical(H_aksen);
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R(~H_aksen) =
255;
G(~H_aksen) =
255;
B(~H_aksen) =
255;
RGB =
cat(3,R,G,B);
axes(handles.axes2)
imshow(RGB);
title('Hasil
Deteksi Warna')
% ---
Executes on button press in pushbutton6.
function
pushbutton6_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton6 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
Img =
handles.Img;
H = handles.H;
H_aksen =
H==213/255;
H_aksen =
logical(H_aksen);
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R(~H_aksen) =
255;
G(~H_aksen) =
255;
B(~H_aksen) =
255;
RGB =
cat(3,R,G,B);
axes(handles.axes2)
imshow(RGB);
title('Hasil
Deteksi Warna')
% ---
Executes on button press in pushbutton7.
function
pushbutton7_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton7 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
Img =
handles.Img;
H = handles.H;
H_aksen =
H==43/255;
H_aksen =
logical(H_aksen);
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R(~H_aksen) =
255;
G(~H_aksen) =
255;
B(~H_aksen) =
255;
RGB =
cat(3,R,G,B);
axes(handles.axes2)
imshow(RGB);
title('Hasil
Deteksi Warna')
% ---
Executes on button press in pushbutton8.
function
pushbutton8_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton8 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
Img =
handles.Img;
bw = handles.bw;
class =
handles.class;
bw2 =
false(size(bw));
n =
find(class==1);
for x =
1:numel(n)
cc = bwconncomp(bw, 4);
bw2(cc.PixelIdxList{n(x)}) = true;
end
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R(~bw2) = 255;
G(~bw2) = 255;
B(~bw2) = 255;
RGB =
cat(3,R,G,B);
axes(handles.axes2)
imshow(RGB);
title('Hasil
Deteksi Bentuk Poligon')
% ---
Executes on button press in pushbutton9.
function
pushbutton9_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton9 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
Img =
handles.Img;
bw = handles.bw;
class =
handles.class;
bw2 =
false(size(bw));
n =
find(class==2);
for x =
1:numel(n)
cc = bwconncomp(bw, 4);
bw2(cc.PixelIdxList{n(x)}) = true;
end
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R(~bw2) = 255;
G(~bw2) = 255;
B(~bw2) = 255;
RGB =
cat(3,R,G,B);
axes(handles.axes2)
imshow(RGB);
title('Hasil
Deteksi Bentuk Segi Tiga')
% ---
Executes on button press in pushbutton10.
function
pushbutton10_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton10 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
Img =
handles.Img;
bw = handles.bw;
class =
handles.class;
bw2 =
false(size(bw));
n =
find(class==3);
for x = 1:numel(n)
cc = bwconncomp(bw, 4);
bw2(cc.PixelIdxList{n(x)}) = true;
end
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R(~bw2) = 255;
G(~bw2) = 255;
B(~bw2) = 255;
RGB =
cat(3,R,G,B);
axes(handles.axes2)
imshow(RGB);
title('Hasil
Deteksi Bentuk Segi Empat')
% ---
Executes on button press in pushbutton11.
function
pushbutton11_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton11 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
% handles structure with handles and user data (see
GUIDATA)
Img =
handles.Img;
bw = handles.bw;
class =
handles.class;
bw2 =
false(size(bw));
n =
find(class==4);
for x =
1:numel(n)
cc = bwconncomp(bw, 4);
bw2(cc.PixelIdxList{n(x)}) = true;
end
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R(~bw2) = 255;
G(~bw2) = 255;
B(~bw2) = 255;
RGB =
cat(3,R,G,B);
axes(handles.axes2)
imshow(RGB);
title('Hasil
Deteksi Bentuk Lingkaran')
% ---
Executes on button press in pushbutton12.
function
pushbutton12_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton12 (see
GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
axes(handles.axes1)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes2)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
function
edit1_Callback(hObject, eventdata, handles)
%
hObject handle to edit1 (see GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles structure with handles and
user data (see GUIDATA)
% Hints:
get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String'))
returns contents of edit1 as a double
% --- Executes
during object creation, after setting all properties.
function
edit1_CreateFcn(hObject, eventdata, handles)
%
hObject handle to edit1 (see GCBO)
%
eventdata reserved - to be defined in a
future version of MATLAB
%
handles empty - handles not created
until after all CreateFcns called
% Hint:
edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc
&& isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
5.
Gunakan gambar dibawah ini untuk
menguji program.
Gambar
4.6 : Colour Shape Acak.
6.
Jalankan program (tekan “F9” pada
keyboard).
Gambar
4.7 : Tampilan program setelah dijalankan.
BAB IV
PENUTUP
4.1 Kesimpulan
Berdasarkan
pengujian yang telah dilakukan dapatkan kesimpulan sebagai berikut :
1. Telah dapat
dihasilkan sebuah program untuk mengidentifikasi objek berdasarkan bentuk dan
warna, dengan menggunakan bahasa pemrograman Matlab.
2. Model
normalisasi RGB ini sangat mudah untuk diaplikasikan khususnya untuk mendeteksi
obyek dengan warna-warna tertentu.
3.
Berdasarkan persamaan 6, warna putih dan hitam
sulit dibedakan karena memiliki nilai RGB
(red, Green, Blue) yang sama untuk kedua warna.
4. Pada proses
klasifikasi (pendeteksian) objek, program akan membandingkan tingkat
kesesuaiaan yang dimiliki objek, terhadap lingkaran, segiempat, segitiga,
polygon, persegi panjang,dan segitiga, kemudian akan dipilih tingkat
kesesuaiaan yang paling tinggi dan diputuskan apakah objek tersebut adalah
lingkaran, persegi panjang, segiempat, segitiga, polygon atau segitiga
4.2
Saran
Berikut
adalah saran - saran yang berkaitan dengan penelitian yang telah dilakukan.
1. Perlu dilakukan penambahan jenis – jenis ciri yang
akan diekstraksi sehingga dapat dibuat kesimpulan yang lebih tepat lagi.
2. Perlu
dilakukan penelitian lanjutan untuk menambah jenis - jenis objek yang
dideteksi, sehingga program dapat dapat mendeteksi lebih banyak objek lagi.
3. Perlu
dilakukan penelitian lebih lanjut agar program dapat mendeteksi citra dengan
objek yang memiliki dimensi yang lebih rumit.
DAFTAR PUSTAKA
Diambil dari https://pemrogramanmatlab.wordpress.com/2016/07/02/pengolahan-citra-digital-untuk-mendeteksi-warna-dan-bentuk-obyek
pada tanggal 12 Oktober 2016
Diambil dari https://core.ac.uk/download/pdf/11724494.pdf
pada tanggal 12 Oktober 2016
Diambil dari http://tha8990.blogspot.co.id/2011/07/jaringan-syaraf-tiruan-perceptron.html pada tanggal 12 Oktober 2016
By :
Faid
at
Selasa, November 29, 2016
Tags :
Kecerdasan Buatan
Mungkin Kamu Suka
8/grid/Kecerdasan Buatan/1-1/640
boleh minta file .m sama .fig nya gan ?? untuk analisis ?
BalasHapus