You are on page 1of 3

akuisisi citra

pemotongan / cropping
ekstraksi fitur
- ekstraksi fitur warna
- ekstraksi fitur tekstur
Klasifikasi data
-training
-testing
hasil
Naive bayes
function varargout = NaiveBayesClassifier(varargin)
% NAIVEBAYESCLASSIFIER M-file for NaiveBayesClassifier.fig
% NAIVEBAYESCLASSIFIER, by itself, creates a new NAIVEBAYESCLASSIFIER or raises
the existing
% singleton*.
%
% H = NAIVEBAYESCLASSIFIER returns the handle to a new NAIVEBAYESCLASSIFIER or t
he handle to
% the existing singleton*.
%
% NAIVEBAYESCLASSIFIER('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in NAIVEBAYESCLASSIFIER.M with the given input argumen
ts.
%
% NAIVEBAYESCLASSIFIER('Property','Value',...) creates a new NAIVEBAYESCLASSIFIE
R or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before NaiveBayesClassifier_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to NaiveBayesClassifier_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHNDLES
% Edit the above text to modify the response to help NaiveBayesClassifier
% Last Modified by GUIDE v2.5 16-Mar-2013 13:34:53
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @NaiveBayesClassifier_OpeningFcn, ...
'gui_OutputFcn', @NaiveBayesClassifier_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
clc;
% set posisi window (get_size_layar/gsl_)
gsl_ = get(0,'ScreenSize');
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 NaiveBayesClassifier is made visible.


function NaiveBayesClassifier_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 NaiveBayesClassifier (see VARARGIN)
% Choose default command line output for NaiveBayesClassifier
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes NaiveBayesClassifier wait for user response (see UIRESUME)
% uiwait(handles.NaiveBayesClassifier);
% --- Outputs from this function are returned to the command line.
function varargout = NaiveBayesClassifier_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 NaiveBayesClassifier.
function trainingdata_Callback(hObject, eventdata, handles)
% hObject handle to NaiveBayesClassifier (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
NaiveBayesClassifierProject=guidata(gcbo);
GetCitraTraining=get(NaiveBayesClassifierProject.CitraTraining,'Userdata');
% menentukan path data training
path_data_train=strrep(cd,...
'Matlab_Code_Rempah','CitraRempah\Data Training');
% data training citra jahe
byk_data_train_jn=20;
% data training citra kunyit
byk_data_train_jl=15;
% data training citra temukunci
byk_data_train_jm=7;
byk_fitur=4;
byk_kelas=3;
% menginisialisasi matrik dataset
dataset=zeros(byk_data_train_jn,byk_fitur);
for i=1:(byk_data_train_jn+byk_data_train_jl+byk_data_train_jm)
if(i<=byk_data_train_jn)
% membaca setiap file citra jahe
filename=strcat(path_data_train,'\','jahe',...
num2str(i),'.jpg');
Kelas{i}='jahe';
elseif(i<=(byk_data_train_jn+byk_data_train_jl))
% membaca setiap file citra kunyit
filename=strcat(path_data_train,'\','kunyit',...
num2str(i-byk_data_train_jn),'.jpg');
Kelas{i}='kunyit';
else
% membaca setiap file citra temukunci
filename=strcat(path_data_train,'\','temukunci',...
num2str(i-(byk_data_train_jn+byk_data_train_jl)),'.jpg');
Kelas{i}='temukunci';
end

I = imread (filename);
% merisize ukuran citra
% I = imresize(I,[256 256]);
if(size(I,3)==4)
I(:,:,1)=[]; % convert to I = [MxNx3]
end
% hitung mean Red, Green, Blue
mean_red=mean(mean(I(:,:,1)));
mean_green=mean(mean(I(:,:,2)));
mean_blue=mean(mean(I(:,:,3)));
axes(handles.CitraTraining);
imshow(I);
set(NaiveBayesClassifierProject.CitraTraining,'Userdata',I);
SizeCitraTraining=size(I);
StringSizeCitraTraining=sprintf(strcat(num2str(SizeCitraTraining(1)),'x',num2str
(SizeCitraTraining(2)),'x',num2str(SizeCitraTraining(3))));
StringSizeCitraTraining = strrep(StringSizeCitraTraining,'x',' x ');
set(handles.UkuranCitraTraining,'String',StringSizeCitraTraining);
% set(handles.UkuranCitraTraining,'String',StringSizeCitraTraining);
set(handles.NamaCitraTraining,'String',sprintf(strcat('Citra Training (Color) Ke
->',num2str(i))));
%% membuat citra gray-scale (abu-abu)
I_gray=Function_ColorToGray(I);
axes(handles.CitraGray);
imshow(I_gray);
%%
%% membuat citra biner (hitam-putih)
% level=graythresh(I);
% I_biner=im2bw(I_gray,level);
I_biner=zeros(size(I_gray,1),size(I_gray,2));
I_biner(find(I_gray<255))=1;
axes(handles.CitraBiner);
imshow(I_biner);
%% membuat citra max filter dari citra biner
%windowing_size harus bernilai ganjil >=3
windowing_size=5;
max_filter_I_biner=Function_MaxFilterBiner_(I_biner,windowing_size);
axes(handles.CitraMaxFilter);
imshow(max_filter_I_biner);
%% menghitung diameter dengan satuan panjang per piksel
% menentukan index yang memuat nilai 1
[idx_,idy_]=find(max_filter_I_biner==1);
diameter=idy_(numel(idy_))-idy_(1)+1;
%% membuat garis pembatas pada diameter
%numel((XY2Index(1,idy_(1),size(I_gray,1)):XY2Index(size(I_gray,1),idy_(numel(id
y_)),size(I_gray,1)))')
% mereplace nilai piksel
I_red=I(:,:,1);
I_red(:,idy_(1):(idy_(1)+10))=105;
I_red(:,(idy_(numel(idy_))-10):idy_(numel(idy_)))=105;
I(:,:,1)=I_red;
I_green=I(:,:,2);
I_green(:,idy_(1):(idy_(1)+10))=75;
I_green(:,(idy_(numel(idy_))-10):idy_(numel(idy_)))=75;
I(:,:,2)=I_green;
I_blue=I(:,:,3);

You might also like