You are on page 1of 4

DILASI DAN EROSI

Muhamad Taufik Yusuf


Email: klepitom@yahoo.com

DASAR TEORI

Topik yang dipilih diambil dari buku Digital Image Processing Using MATLAB karangan R. C.Gonzalez, R.
E. Woods dan S. L. Eddins pada bab 9 tentang morphological image processing. Membahas tentang dilasi
dan erosi yang merupakan komponen-komponen fungsi morfologi.

1. Dilasi
Operasi dilasi dilakukan untuk memperbesar ukuran segmen obyek dengan menambah lapisan di
sekeliling obyek. Terdapat 2 cara untuk melakukan operasi ini, yaitu dengan cara mengubah semua
titik latar yang bertetangga dengan titik batas menjadi titik obyek, atau lebih mudahnya set setiap
titik yang tetangganya adalah titik obyek menjadi titik obyek. Cara kedua yaitu dengan mengubah
semua titik di sekeliling titik batas menjadi titik obyek, atau lebih mudahnya set semua titik tetangga
sebuah titik obyek menjadi titik obyek.

2. Erosi
Operasi erosi adalah kebalikan dari operasi dilasi. Pada operasi ini, ukuran obyek diperkecil dengan
mengikis sekeliling obyek. Cara yang dapat dilakukan juga ada 2. Cara pertama yaitu dengan
mengubah semua titik batas menjadi titik latar dan cara kedua dengan menset semua titik di
sekeliling titik latar menjadi titik latar.

Structuring element yang digunakan sebagai pengikis adalah se = strel('ball', 5, 5);

TAMPILAN HASIL PROGRAM


LISTING PROGRAM

File Tugas_2.m

function varargout = Tugas_2(varargin)


% TUGAS_2 M-file for Tugas_2.fig
% TUGAS_2, by itself, creates a new TUGAS_2 or raises the existing
% singleton*.
%
% H = TUGAS_2 returns the handle to a new TUGAS_2 or the handle to
% the existing singleton*.
%
% TUGAS_2('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in TUGAS_2.M with the given input arguments.
%
% TUGAS_2('Property','Value',...) creates a new TUGAS_2 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before Tugas_2_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to Tugas_2_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 Tugas_2

% Last Modified by GUIDE v2.5 30-Jul-2009 05:08:46

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Tugas_2_OpeningFcn, ...
'gui_OutputFcn', @Tugas_2_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 Tugas_2 is made visible.


function Tugas_2_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 Tugas_2 (see VARARGIN)

% Choose default command line output for Tugas_2


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes Tugas_2 wait for user response (see UIRESUME)


% uiwait(handles.figure1);
clc, clear;

% --- Outputs from this function are returned to the command line.
function varargout = Tugas_2_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 cmdLoadCitra.


function cmdLoadCitra_Callback(hObject, eventdata, handles)
% hObject handle to cmdLoadCitra (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[fileCitra, pathCitra] = uigetfile({'*.bmp; *.jpg; *.png', 'File Citra
(*.bmp,*.jpg, *.png)';
'*.bmp', 'File bitmap (*.bmp)';
'*.jpg', 'File jpeg(*.jpg)';
'*.png', 'File png (*.png)';
'*.*', 'Semua File (*.*)'}, 'buka file Citra');
if ~isequal(fileCitra, 0)
handles.dataCitra = imread(fullfile(pathCitra, fileCitra));
guidata(hObject,handles);
axes(handles.imgCitra);
imshow(handles.dataCitra);
else
return;
end

% --- Executes on button press in cmdProses.


function cmdProses_Callback(hObject, eventdata, handles)
% hObject handle to cmdProses (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
citraAsli = handles.dataCitra;
citraGray = rgb2gray(citraAsli);

se = strel('ball', 5, 5);

citraDilasi = imdilate(citraGray, se);


handles.dataCitraDilasi = citraDilasi;
guidata(hObject,handles);
axes(handles.imgCitraDilasi);
imshow(handles.dataCitraDilasi);

citraErosi = imerode(citraGray, se);


handles.dataCitraErosi = citraErosi;
guidata(hObject,handles);
axes(handles.imgCitraErosi);
imshow(handles.dataCitraErosi);

You might also like