Kali ini saya akan share syntax untuk membuat histogram dengan menyatukan 3 warna (Red, Green, Blue) hanya menggunakan satu axes saja.
Yang diperlukan adalah :
- 6 Static Text
- 5 Axes
- 3 Push Button (Push Button 1 : OPEN CITRA, Push Button 2 : PROSES citra untuk 3 Axes, dan Push Button 3 : HISTOGRAM WARNA yaitu penyatuan dari warna RGB)
berikut syntax yang harus dimasukan dalam M-File Editor :
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)
[nama_file1, nama_path1]=uigetfile(...
{'*.bmp;*.jpg;*jpeg','File Citra (*.bmp,*.jpeg,*.jpg)';
'*.bmp','File Bitmap (*.bmp)';...
'*.jpeg','File jpeg (*.jpeg)';...
'*.jpg','File jpg (*.jpg)'},...
'Buka File Citra');
if ~isequal (nama_file1,0)
data1=imread(fullfile(nama_path1,nama_file1));
handles.data1=data1;
guidata(hObject,handles);
axes(handles.axes1);
imshow(handles.data1);
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)
data1=handles.data1;
dr=data1(:,:,1);
dg=data1(:,:,2);
db=data1(:,:,3);
handles.dr=dr;
guidata(hObject,handles);
axes(handles.axes2);
imhist(handles.dr);
handles.dg=dg;
guidata(hObject,handles);
axes(handles.axes3);
imhist(handles.dg);
handles.db=db;
guidata(hObject,handles);
axes(handles.axes4);
imhist(handles.db);
% --- 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)
dr=double(handles.dr);
dg=double(handles.dg);
db=double(handles.db);
data1=handles.data1;
[b,k,s]=size(data1);
if s==1
data1=rgb2gray(data1);
axes(handles.axes5);
imhist(data1);
else
dtr=[];
dtg=[];
dtb=[];
for warna=0:255;
jmlr=0;
jmlg=0;
jmlb=0;
for i=1:b;
for j=1:k;
if dr(i,j)==warna
jmlr=jmlr+1;
end;
if dg(i,j)==warna
jmlg=jmlg+1;
end;
if db(i,j)==warna
jmlb=jmlb+1;
end;
end;
end;
dtr=[dtr jmlr];
dtg=[dtg jmlg];
dtb=[dtb jmlb];
end;
dt=dtr+dtg+dtb;
data1=handles.data1;
[b,k,s]=size(data1);
handles.b=b;
handles.k=k;
x=0:255;
y=dt/(b*k);
axes(handles.axes5);
bar(x,y,'g');
set(gca,'xlim',[0 255]);
end;
Yang diperlukan adalah :
- 6 Static Text
- 5 Axes
- 3 Push Button (Push Button 1 : OPEN CITRA, Push Button 2 : PROSES citra untuk 3 Axes, dan Push Button 3 : HISTOGRAM WARNA yaitu penyatuan dari warna RGB)
berikut syntax yang harus dimasukan dalam M-File Editor :
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)
[nama_file1, nama_path1]=uigetfile(...
{'*.bmp;*.jpg;*jpeg','File Citra (*.bmp,*.jpeg,*.jpg)';
'*.bmp','File Bitmap (*.bmp)';...
'*.jpeg','File jpeg (*.jpeg)';...
'*.jpg','File jpg (*.jpg)'},...
'Buka File Citra');
if ~isequal (nama_file1,0)
data1=imread(fullfile(nama_path1,nama_file1));
handles.data1=data1;
guidata(hObject,handles);
axes(handles.axes1);
imshow(handles.data1);
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)
data1=handles.data1;
dr=data1(:,:,1);
dg=data1(:,:,2);
db=data1(:,:,3);
handles.dr=dr;
guidata(hObject,handles);
axes(handles.axes2);
imhist(handles.dr);
handles.dg=dg;
guidata(hObject,handles);
axes(handles.axes3);
imhist(handles.dg);
handles.db=db;
guidata(hObject,handles);
axes(handles.axes4);
imhist(handles.db);
% --- 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)
dr=double(handles.dr);
dg=double(handles.dg);
db=double(handles.db);
data1=handles.data1;
[b,k,s]=size(data1);
if s==1
data1=rgb2gray(data1);
axes(handles.axes5);
imhist(data1);
else
dtr=[];
dtg=[];
dtb=[];
for warna=0:255;
jmlr=0;
jmlg=0;
jmlb=0;
for i=1:b;
for j=1:k;
if dr(i,j)==warna
jmlr=jmlr+1;
end;
if dg(i,j)==warna
jmlg=jmlg+1;
end;
if db(i,j)==warna
jmlb=jmlb+1;
end;
end;
end;
dtr=[dtr jmlr];
dtg=[dtg jmlg];
dtb=[dtb jmlb];
end;
dt=dtr+dtg+dtb;
data1=handles.data1;
[b,k,s]=size(data1);
handles.b=b;
handles.k=k;
x=0:255;
y=dt/(b*k);
axes(handles.axes5);
bar(x,y,'g');
set(gca,'xlim',[0 255]);
end;
Comments
Post a Comment