laporan pcd konvolusi

13
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

Upload: ari-setiawan

Post on 26-Dec-2015

67 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LAPORAN PCD KONVOLUSI

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

Page 2: LAPORAN PCD KONVOLUSI

BAB I

PERMASALAHAN

Tugas

Membuat interface Konvolusi RGB menggunakan MATLAB dengan konten:

1. Figure/ form

2. Coding

3. Screendhoot/ hasil

Page 3: LAPORAN PCD KONVOLUSI

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:

Page 4: LAPORAN PCD KONVOLUSI

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);

Page 5: LAPORAN PCD KONVOLUSI

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*.

Page 6: LAPORAN PCD KONVOLUSI

%% 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)

Page 7: LAPORAN PCD KONVOLUSI

% 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

Page 8: LAPORAN PCD KONVOLUSI

% --- 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)...

Page 9: LAPORAN PCD KONVOLUSI

+ 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

Page 10: LAPORAN PCD KONVOLUSI

b. Inputan Smoothing

c. Inputan Penajaman

Page 11: LAPORAN PCD KONVOLUSI