BAB I
Permasalahan
1. Membuat Push-Button Buka Citra bisa open file image dengan type file .jpg,
.bmp, .tif, .gif.
2. Membuat pop-upmenu Histogram hilang saat gambar abu-abu dan muncul
kembalu pada saat gambar berwarna/RGB.
3. Memberikan komentar pada program yang dibuat beserta screen shot.
BAB II
Pembahasan
1. Source Code
function varargout = devi(varargin)
% BARU MATLAB code for baru.fig
%
BARU, by itself, creates a new BARU or raises the existing
%
singleton*.
%
%
H = BARU returns the handle to a new BARU or the handle to
%
the existing singleton*.
%
%
BARU('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in BARU.M with the given input arguments.
%
%
BARU('Property','Value',...) creates a new BARU or raises the
%
existing singleton*. Starting from the left, property value pairs
are
%
applied to the GUI before baru_OpeningFcn gets called. An
%
unrecognized property name or invalid value makes property
application
%
stop. All inputs are passed to baru_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 baru
% Last Modified by GUIDE v2.5 25-Oct-2016 05:29:10
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @baru_OpeningFcn, ...
'gui_OutputFcn', @baru_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 baru is made visible.
function baru_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure
% eventdata
% handles
% varargin
reserved - to be defined in a future version of MATLAB
structure with handles and user data (see GUIDATA)
command line arguments to baru (see VARARGIN)
% Choose default command line output for baru
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes baru wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = baru_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;
function editName_Callback(hObject, eventdata, handles)
% hObject
handle to editName (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 editName as text
%
str2double(get(hObject,'String')) returns contents of editName as
a double
% --- Executes during object creation, after setting all properties.
function editName_CreateFcn(hObject, eventdata, handles)
% hObject
handle to editName (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
function editSize_Callback(hObject, eventdata, handles)
% hObject
handle to editSize (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 editSize as text
%
str2double(get(hObject,'String')) returns contents of editSize as
a double
% --- Executes during object creation, after setting all properties.
function editSize_CreateFcn(hObject, eventdata, handles)
% hObject
handle to editSize (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
function editType_Callback(hObject, eventdata, handles)
% hObject
handle to editType (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 editType as text
%
str2double(get(hObject,'String')) returns contents of editType as
a double
% --- Executes during object creation, after setting all properties.
function editType_CreateFcn(hObject, eventdata, handles)
% hObject
handle to editType (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
% --- Executes on button press in pushbuttonBuka.
function pushbuttonBuka_Callback(hObject, eventdata, handles)
% hObject
handle to pushbuttonBuka (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% fungsi ini digunakan untuk membaca citra lena.bmp
%digunakan agar variabel
tersebut dapat digunakan pada seluruh
global y f1 f2 f3 grayscale;
%sub-sub rutin yang terdapat
di dalam fungsi
[filename, pathname] = uigetfile(...
%digunakan untuk memunculkan
kotak dialog open file dan memilih file
{'*.bmp;*.jpg;*.tif;*.gif;',...
%list type file
'file lukisan (*.bmp,*.jpg,*.tif,*.gif)';
'*.bmp','image bmp (*.bmp)';...
'*.jpg','image jpg (*.jpg)';...
'*.tif','image tif (*.tif)';...
'*.gif','image gif (*.gif)';...
'*.*','All file(*.*)'},...
'Pick a file');
gb = strcat(pathname, filename);
y = imread(gb);
%y=imread('lena.bmp');
axes(handles.axes1);
dipilih
imshow(y);
info=imfinfo(gb);
%membaca image yanga ada di komputer
%untuk memilih posisi file yang akan
%untuk menampilkan image yang dipilih
%untuk memberikan informasi image
set(handles.editName,'string',info.Filename);
dari info image itu sendiri
%akan menampilkan nama file
set(handles.editType,'string',info.Format);
info image itu sendiri
%akan menampilkan Type dari
set(handles.editSize,'string',info.FileSize);
info image itu sendiri
%akan menampilkan Size dari
handles.y=y;
%fungsi yang mengakomodir y
[f]=histogram(handles.y);
dari image yang dipilih
%f = perhitingan histogram
absis=0:1:255;
%x = antara 1 sampai 255
axes(handles.axes2)
histogram image yang dipilih
%posisi untuk meletakkan
plot(absis,f,'k')
hasil perhitungan histogram image
%untuk menggambar grafik
%fungsi untuk menampakkan pop-up Histogram citra jika gambar berwarna (RGB)
%dan tidak jika gambar grayscale
if size(handles.y,3)==1;
set(handles.popupmenu2,'Visible','off');
%menyembunyikan popup Histogram
drawnow;
else
set(handles.popupmenu2,'Visible','on');
%menampilkan kembali popup
Histogram
drawnow;
end
grid on
%menampilkan grid pada kotak
histogram
guidata(hObject, handles);
% --- Executes on button press in pushbuttonExit.
function pushbuttonExit_Callback(hObject, eventdata, handles)
% hObject
handle to pushbuttonExit (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% fungsi ini untuk menutup figure
delete(handles.figure1);
% --- Executes on button press in pushbuttonHistogram.
function pushbuttonHistogram_Callback(hObject, eventdata, handles)
% hObject
handle to pushbuttonHistogram (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% fungsi ini digunakan untuk menampilkan histogram
[f]=histogram(handles.y);
absis=0:1:255;
axes(handles.axes2)
plot(absis,f,'k')
grid on
function [f]=histogram(cit)
% fungsi lokal untuk menghitung histogram citra
[m n]=size(cit);
citra=double(cit);
for i=1:256, f(i)=0; end;
for j=1:m,
for k=1:n,
f(round(citra(j,k))+1)=f(round(citra(j,k))+1)+1;
end;
end;
% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles) %fungdi untuk
tombol Histogram citra
indeks = get(handles.popupmenu2,'Value');
%karena popupmenu
maka akan terdapat lebih
handles.indeks=indeks;
%dari 1 pilihan
indeks adalah kontrol untuk pilihannya
guidata(hObject,handles);
if indeks==1 %jika menu 1 dipilih maka akan muncul histogram 3 warna (RGB)
[R]=histogram(handles.y(:,:,1)); %R = Histogram Red
[G]=histogram(handles.y(:,:,2)); %G = Hstogram Green
[B]=histogram(handles.y(:,:,3)); %B = Histogram Blue
absis=0:1:255;
%absis/x = antara 1 sampai 255
axes(handles.axes2)
%posisi meletakkan grafik Hstogram
plot(absis,B,'b',absis,R,'r',absis,G,'g') %untuk menggambar grafik
hasil perhitungan histogram image
grid on
%menampilkan grid pada kotak
histogram
else if indeks==2 %jika menu 2 dipilih maka akan muncul histogram red
[f1]=histogram(handles.y(:,:,1));%f1 = Histogram Red
absis=0:1:255;
%absis/x = antara 1 sampai 255
axes(handles.axes2)
%posisi meletakkan grafik Hstogram
plot(absis,f1,'r')
%untuk menggambar grafik hasil
perhitungan histogram image
grid on
%menampilkan grid pada kotak
histogram
else if indeks==3 %jika menu 3 dipilih maka akan muncul histogram
blue
[f2]=histogram(handles.y(:,:,2));%f2 = Histogram Green
absis=0:1:255;
%absis/x = antara 1 sampai 255
axes(handles.axes2)
%posisi meletakkan grafik
Hstogram
plot(absis,f2,'g')
%untuk menggambar grafik hasil
perhitungan histogram image
grid on
%menampilkan grid pada kotak
histogram
else if indeks==4 %jika menu 4 dipilih maka akan muncul
histogram green
[f3]=histogram(handles.y(:,:,3));%f3 = Histogram Blue
absis=0:1:255;
%absis/x = antara 1 sampai
255
axes(handles.axes2)
%posisi meletakkan grafik
Hstogram
plot(absis,f3,'b')
%untuk menggambar grafik
hasil perhitungan histogram image
grid on
%menampilkan grid pada
kotak histogram
end
end
end
end
% hObject
handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu2
contents as cell array
%
contents{get(hObject,'Value')} returns selected item from
popupmenu2
% --- Executes during object creation, after setting all properties.
function popupmenu2_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns called
% Hint: popupmenu 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
2. Screen Shot
a. Gambar 1
2.1 Gambar tampilan awal
b. Gambar 2
2.2 Gambar Open File image
c. Gambar 3
2.3 Gambar File image abu-abu dan hasil Histogramnya
d. Gambar 4
2.4 Gambar image berwarna/RGB dan hasil Histogramnya
e. Gambar 5
2.5 Gambar hasil Histogram RGB
f. Gambar 6
2.6 Gambar Hasil Histogram Red
g. Gambar 7
2.7 Gambar Hasil Histogram Green
h. Gambar 8
2.8 Gambar hasil Histogram Blue