laporan pcd konvolusi
TRANSCRIPT
PENGOLAHAN CITRA DIGITAL
KONVOLUSI
Laporan ini dikerjakan dalam rangka pemenuhan tugas mata kuliah
Pengolahan Citra Digital yang diampu oleh
Aris Sugiharto, S.si, M.Kom
Dibuat oleh:
Ari Setiawan 24010312120014
JURUSAN ILMU KOMPUTER/ INFORMATIKA
FAKULTAS SAINS DAN MATEMATIKA
UNIVERSITAS DIPONEGORO
SEMARANG
2014
BAB I
PERMASALAHAN
Tugas
Membuat interface Konvolusi RGB menggunakan MATLAB dengan konten:
1. Figure/ form
2. Coding
3. Screendhoot/ hasil
BAB II
PENYELESAIAN
1. Membuat figure/ form
Untuk membuat form menggunakan GUI dengan mengklik File New GUI
Tampilannya akan seperti :
Setelah itu, dibuat tampilan yang diinginkan dengan menggunkan icon-icon yang ada.
Tampilan form. Setelah itu nantinya jika di run maka akan muncul hasil seperti gambar di
bawah ini:
2. Membuat coding
Di dalam pembuatan tugas ini digunakan 1 file, yaitu file fungsi_konvolusi.m. Pada script di
bawah ini merupakan fungsi algoritma yang akan di gunakan ketika citra konvolusi di proses:
function Hasil_Konvolusi=konvolusi(a,kernel) a = double(a); Hasil_Konvolusi = a; [m n] = size(a); for i=2:m-1, for j=2:n-1, Hasil_Konvolusi(i,j) = a(i-1,j-1)*kernel(1,1) + a(i- 1,j)*kernel(1,2) +a(i-1,j+1)*kernel(1,3)... + a(i,j-1)*kernel(2,1) + a(i,j) * kernel(2,2) + a(i,j+1)*kernel(2,3)... + a(i+1,j-1)*kernel(3,1) + a(i+1,j)*kernel(3,2) + a(i+1,j+1)*kernel(3,3); end; end; Hasil_Konvolusi=uint8(Hasil_Konvolusi); function Hasil_Konvolusi=konvolusi_RGB(a,kernel) a = double(a); Hasil_Konvolusi(:,:,1) = konvolusi(a(:,:,1),kernel); Hasil_Konvolusi(:,:,2) = konvolusi(a(:,:,2),kernel); Hasil_Konvolusi(:,:,3) = konvolusi(a(:,:,3),kernel);
Pada tombol input, di gunakan untuk memanggil citra asli yang nantinya akan di proses ke
citra konvolusi.. Codingnya seperti:
% --- 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)global image;[filename,pathname] = uigetfile ( ... {'*.bmp;*.png;*.jpg;*.tif;*.gif', 'file;... lukisan(*.bmp;*.png;*.jpg;*.tif;*.gif)'; '*.bmp;', 'gambar bmp (*.bmp)';... '*.png;', 'gambar png (*.png)';... '*.jpg;', 'gambar JPEG (*.jpg)';... '*.tif;', 'gambar tif (*.tif)';... '*.gif;', 'gambar gif (*.gif)';... '*.*', 'semua File (*.*)'},... 'Open Image'); image = imread(fullfile(pathname,filename));axes(handles.axes1);imshow(image);
Pada tombol Konvolusi yang digunkan untuk memproses citra asli menjadi citra konvolusi,
Nantinya setelah memilih proses konvolusi yang akan di proses seperti pilihan edge,
penajaman dan smoothing. Codingnya seperti:
% --- 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)global image; [a b c] = size(image); kernel = str2num(get(handles.edit2,'String')); if (c==3) Hasil_Konvolusi = konvolusi_RGB(image,kernel); else Hasil_Konvolusi = konvolusi(image,kernel); endaxes(handles.axes2);imshow(Hasil_Konvolusi);
Pada tombol Exit yang digunkan untuk keluar dari program. Codingnya seperti:
function pushbutton3_Callback(hObject, eventdata, handles)delete(handles.figure1);
PopUp Button merupakan tombol yang berisi pilihan proses konvolusi. Pada bagian ini berisi
kondisi setiap pilihan dengan menggunakan matriks.
kon = get(hObject,'Value');switch kon; case 1 set(handles.edit2,'string','0 -1 0; -1 4 -1; 0 -1 0'); case 2 set(handles.edit2,'string','1/9 1/9 1/9; 1/9 1/9 1/9; 1/9 1/9 1/9'); case 3 set(handles.edit2,'string','0 -1 0; -1 5 -1; 0 -1 0');end
Coding keseluruhan secara keseluruhan seperti :
function varargout = Konvolusi(varargin)% KONVOLUSI MATLAB code for Konvolusi.fig% KONVOLUSI, by itself, creates a new KONVOLUSI or raises the existing% singleton*.
%% H = KONVOLUSI returns the handle to a new KONVOLUSI or the handle to% the existing singleton*.%% KONVOLUSI('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in KONVOLUSI.M with the given input arguments.%% KONVOLUSI('Property','Value',...) creates a new KONVOLUSI or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before Konvolusi_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to Konvolusi_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 Konvolusi % Last Modified by GUIDE v2.5 25-Nov-2014 23:51:23 % Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Konvolusi_OpeningFcn, ... 'gui_OutputFcn', @Konvolusi_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 Konvolusi is made visible.function Konvolusi_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 Konvolusi (see VARARGIN)
% Choose default command line output for Konvolusihandles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes Konvolusi wait for user response (see UIRESUME)% uiwait(handles.figure1); % --- Outputs from this function are returned to the command line.function varargout = Konvolusi_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 structurevarargout{1} = handles.output; % --- Executes on selection change in popupmenu1.function popupmenu1_Callback(hObject, eventdata, handles)% hObject handle to popupmenu1 (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 popupmenu1 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu1kon = get(hObject,'Value');switch kon; case 1 set(handles.edit2,'string','0 -1 0; -1 4 -1; 0 -1 0'); case 2 set(handles.edit2,'string','1/9 1/9 1/9; 1/9 1/9 1/9; 1/9 1/9 1/9'); case 3 set(handles.edit2,'string','0 -1 0; -1 5 -1; 0 -1 0');end % --- Executes during object creation, after setting all properties.function popupmenu1_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu1 (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
% --- 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)global image;[filename,pathname] = uigetfile ( ... {'*.bmp;*.png;*.jpg;*.tif;*.gif', 'file;... lukisan(*.bmp;*.png;*.jpg;*.tif;*.gif)'; '*.bmp;', 'gambar bmp (*.bmp)';... '*.png;', 'gambar png (*.png)';... '*.jpg;', 'gambar JPEG (*.jpg)';... '*.tif;', 'gambar tif (*.tif)';... '*.gif;', 'gambar gif (*.gif)';... '*.*', 'semua File (*.*)'},... 'Open Image'); image = imread(fullfile(pathname,filename));axes(handles.axes1);imshow(image); % --- 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)global image; [a b c] = size(image); kernel = str2num(get(handles.edit2,'String')); if (c==3) Hasil_Konvolusi = konvolusi_RGB(image,kernel); else Hasil_Konvolusi = konvolusi(image,kernel); endaxes(handles.axes2);imshow(Hasil_Konvolusi); % --- 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)delete(handles.figure1); function Hasil_Konvolusi=konvolusi(a,kernel) a = double(a); Hasil_Konvolusi = a; [m n] = size(a); for i=2:m-1, for j=2:n-1, Hasil_Konvolusi(i,j) = a(i-1,j-1)*kernel(1,1) + a(i-1,j)*kernel(1,2) +a(i-1,j+1)*kernel(1,3)... + a(i,j-1)*kernel(2,1) + a(i,j) * kernel(2,2) + a(i,j+1)*kernel(2,3)...
+ a(i+1,j-1)*kernel(3,1) + a(i+1,j)*kernel(3,2) + a(i+1,j+1)*kernel(3,3); end; end; Hasil_Konvolusi=uint8(Hasil_Konvolusi); function Hasil_Konvolusi=konvolusi_RGB(a,kernel) a = double(a); Hasil_Konvolusi(:,:,1) = konvolusi(a(:,:,1),kernel); Hasil_Konvolusi(:,:,2) = konvolusi(a(:,:,2),kernel); Hasil_Konvolusi(:,:,3) = konvolusi(a(:,:,3),kernel); function edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (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 edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double % --- Executes during object creation, after setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (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
3. Screenshoot/ hasil
a. Inputan Edge Detection
b. Inputan Smoothing
c. Inputan Penajaman