Pada tugas kali ini, akan dijelaskan mengenai penajaman
citra (sharpening) dengan menggunakan MATLAB versi 7. Penajaman citra bertujuan
untuk memperjelas tepi objek pada citra. Metodenya menggunakan High Pass
Filter. Penajaman citra sering juga disebut sebagai penajaman tepi (edge
sharpening).
Selanjutnya saya
akan menjelaskan proses pembuatan sharpening dengan matlab beserta GUI-nya. Pertama-tama
buka program matlab, kemudian ketikan >>guide pada command window.
Kemudian pilih Blank GUI, lalu OK. Selajutnya simpan figure dengan mengklik
File>>Save As, simpan dengan nama Sharpening. Lalu desain figure dengan
mendesain seperti gambar dibawah ini :
Pada desain GUI
di atas komponen yang digunakan yaitu pushbutton, axes, panel , dan static
text. Untuk mengatur properti komponen dapat dilakukan dengan double click pada
komponen atau dengan klik kanan pada komponen>>property inspector.
Pada desain GUI
sharpening ini saya menggunakan tiga pushbutton yaitu Browse, Sharp, dan Clear
Image. Button Browse digunakan untuk meload gambar ke axes pertama. Button
Sharp digunakan untuk melakukan proses penajaman citra yang hasilnya akan
ditampilkan pada axes kedua. Button Clear Image berfungsi untuk membersihkan
gambar pada axes pertama dan kedua.
Berikut ini
adalah koding untuk keseluruhan komponen :
Spoiler:Koding Sharpening :
function varargout = Sharpening(varargin)
% SHARPENING MATLAB code for Sharpening.fig
% SHARPENING, by itself, creates a new SHARPENING or raises the existing
% singleton*.
%
% H = SHARPENING returns the handle to a new SHARPENING or the handle to
% the existing singleton*.
%
% SHARPENING('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in SHARPENING.M with the given input arguments.
%
% SHARPENING('Property','Value',...) creates a new SHARPENING or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before Sharpening_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to Sharpening_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 Sharpening
% Last Modified by GUIDE v2.5 26-Dec-2011 00:55:06
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Sharpening_OpeningFcn, ...
'gui_OutputFcn', @Sharpening_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 Sharpening is made visible.
function Sharpening_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 Sharpening (see VARARGIN)
% Choose default command line output for Sharpening
handles.output = hObject;
% UIWAIT makes Sharpening wait for user response (see UIRESUME)
% uiwait(handles.figsharp);
% --- Outputs from this function are returned to the command line.
function varargout = Sharpening_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 btnbrowse.
function btnbrowse_Callback(hObject, eventdata, handles)
% hObject handle to btnbrowse (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
[namafile,direktori]=uigetfile({'*.jpg';'*.bmp';...
'*.png';'*tif'},'Buka Gambar');
% --- Executes on button press in btnsharp.
function btnsharp_Callback(hObject, eventdata, handles)
% hObject handle to btnsharp (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
PSF=fspecial('unsharp');
A=imfilter(I,PSF,'replicate');
set(proyek.figsharp,'CurrentAxes',proyek.axes2);
set(imshow(A));
set(proyek.axes2,'Userdata',A);
% --- Executes on button press in btnclear.
function btnclear_Callback(hObject, eventdata, handles)
% hObject handle to btnclear (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
set(proyek.figsharp,'CurrentAxes',proyek.axes1);
cla;
set(proyek.figsharp,'CurrentAxes',proyek.axes2);
cla;
Penjelasan :
Fungsi Uigetfile digunakan sebagai kotak dialog standar
untuk mengambil file.
fspecial menciptakan filter 2-D PSF dari tipe yang spesifik.
fspecial mengembalikan nilai PSF sebagai kernel korelasi, yang merupakan bentuk
yang sesuai untuk digunakan dengan
imfilter. Imfilter digunakan untuk gambar multidimensional. Unsharp merupakan
tipe spesifik yang digunakan untuk meningkatkan kontras.
Fungsi “cla;”
digunakan untuk membersikan objek dari axes.
Untuk menuliskan
perintah-perintah diatas dapat digunakan fungsi callback. Caranya yaitu klik
kanan pada komponen>>klik View Callback>>Callback. Setelah semua
perintah sudah dimasukan GUI dapat dijalankan pada figure dengan menekan CTRL+T.
Dibawah ini
adalah gambar output dari gambar asli dan gambar yang sudah dilakukan proses
sharpening.
Apakah terlihat perbedaan dari gambar sebelum dan sesudah dilakukan proses sharpening???
Tidak ada komentar:
Posting Komentar