LISTING
PROGRAM SHARPENING IMAGE MATLAB :
function varargout =
Sharpeninglaplace(varargin)
%
SHARPENINGLAPLACE MATLAB code for Sharpeninglaplace.fig
% SHARPENINGLAPLACE, by itself, creates a
new SHARPENINGLAPLACE or raises the existing
% singleton*.
%
% H = SHARPENINGLAPLACE returns the handle
to a new SHARPENINGLAPLACE or the handle to
% the existing singleton*.
%
%
SHARPENINGLAPLACE('CALLBACK',hObject,eventData,handles,...) calls the
local
% function named CALLBACK in
SHARPENINGLAPLACE.M with the given input arguments.
%
% SHARPENINGLAPLACE('Property','Value',...)
creates a new SHARPENINGLAPLACE or raises the
% existing singleton*. Starting from the left, property value pairs
are
% applied to the GUI before
Sharpeninglaplace_OpeningFcn gets called.
An
% unrecognized property name or invalid
value makes property application
% stop.
All inputs are passed to Sharpeninglaplace_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 Sharpeninglaplace
%
Last Modified by GUIDE v2.5 22-Nov-2012 20:22:19
%
Begin initialization code - DO NOT EDIT
gui_Singleton
= 1;
gui_State
= struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn',
@Sharpeninglaplace_OpeningFcn, ...
'gui_OutputFcn', @Sharpeninglaplace_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 Sharpeninglaplace is made visible.
function
Sharpeninglaplace_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
Sharpeninglaplace (see VARARGIN)
%
Choose default command line output for Sharpeninglaplace
handles.output
= hObject;
%
Update handles structure
guidata(hObject,
handles);
%
UIWAIT makes Sharpeninglaplace wait for user response (see UIRESUME)
%
uiwait(handles.figure1);
%
--- Outputs from this function are returned to the command line.
function varargout =
Sharpeninglaplace_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 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)
proyek=guidata(gcbo);
[namafile,direktori]=uigetfile({'*.jpg';'*.bmp';'*.png';'*.tif'},'Buka Gambar')
if
isequal(namafile,0)
return;
end
eval(['cd ''' direktori ''';']);
I=imread(namafile);
set(proyek.figure1,'CurrentAxes',proyek.axes1);
set(imshow(I));
set(proyek.figure1,'Userdata',I);
set(proyek.axes1,'Userdata',I);
%
--- 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)
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
if isequal(I,[])
msgbox('Belum ada
gambar!','Peringatan','warn');
else
SSF=[0
1 0;1 -4 1; 0 1 0];
SSF2=[0
-1 0;-1 5 -1; 0 -1 0];
A=imfilter(I,SSF2,'replicate');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(A));
set(proyek.axes2,'Userdata',A);
B=imfilter(I,SSF,'replicate');
set(proyek.figure1,'CurrentAxes',proyek.axes3);
set(imshow(B));
set(proyek.axes3,'Userdata',B);
redo_Callback(hObject,
eventdata, handles);
end
%
--- 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)
proyek=guidata(gcbo);
[namafile,direktori]=uiputfile({'*.jpg';'*.*'},'Simpan Citra');
I=get(proyek.axes2,'Userdata');
imwrite(I,strcat(direktori,namafile));
%
--- Executes on button press in pushbutton4.
function
pushbutton4_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton4 (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');
if isequal(I,[])
msgbox('Belum ada
gambar!','Peringatan','warn');
else
PSF=[1
1 1;1 -8 1;1 1 1];
PSF2=[-1
-1 -1;-1 9 -1;-1 -1 -1];
A=imfilter(I,PSF2,'replicate');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(A));
set(proyek.axes2,'Userdata',A);
B=imfilter(I,PSF,'replicate');
set(proyek.figure1,'CurrentAxes',proyek.axes3);
set(imshow(B));
set(proyek.axes3,'Userdata',B);
redo_Callback(hObject,
eventdata, handles);
end
%
--- Executes on button press in pushbutton7.
function
pushbutton7_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton7 (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]=uiputfile({'*.jpg';'*.*'},'Simpan Citra');
I=get(proyek.axes2,'Userdata');
imwrite(I,strcat(direktori,namafile));
LOGIKA
PROGRAM SHARPENING IMAGE :
Pada Proses
Penajaman Gambar (Sharpening) ini,
kita menggunakan Software MATLAB. MATLAB (Matrix Laboratory) adalah sebuah
program untuk analisis dan komputasi numerik dan merupakan suatu bahasa
pemrograman matematika lanjutan yang dibentuk dengan dasar pemikiran menggunkan
sifat dan bentuk matriks. MATLAB telah berkembang menjadi sebuah environment
pemrograman yang canggih yang berisi fungsi-fungsi built-in untuk melakukan
tugas pengolahan sinyal, aljabar linier, dan kalkulasi matematis lainnya. Untuk
membuat Penajaman Gambar kali ini, kami menggunakan fitur GUI pada MATLAB.
GUIDE atau
GUI builder merupakan sebuah graphical user interface (GUI) yang
dibangun dengan obyek grafik seperti tombol (button), kotak teks,
slider, menu dan lain-lain. Aplikasi yang menggunakan GUI umumnya lebih mudah
dipelajari dan digunakan karena orang yang menjalankannya tidak perlu
mengetahui perintah yang ada dan bagaimana kerjanya. Untuk Memulai GUIDE Matlab dapat dilakukan dengan dua cara, yaitu:
1. Melalui command matlab dengan mengetikkan: >> guide
2. Klik tombol Start Matlab dan pilihlah MATLAB, lalu pilih GUIDE (GUI Bulder)
Setelah kita masuk dalam fitur GUI, maka kita
buat tampilan untuk program Sharpening
ini dengan membuat 3 Axes, 3 Panel dan 5 Button. Axes sebenarnya tidak
masuk dalam UIControl, tetapi axes
dapat diprogram agar
pemakai dapat berinteraksi dengan axes dan obyek grafik yang ditampilkan
melalui axes. Sedangkan Pushbutton merupakan jenis kontrol berupa
tombol tekan yang akan menghasilkan tindakan jika diklik, misanya tombol OK,
Cancel, Hitung, Hapus, dan sebagainya. Untuk menampilkan tulisan pada
pushbutton kita dapat mengaturnya melalui property
inspector dengan mengklik obeyek pushbutton pada figure, lalu mengklik
toolbar property inspector atau menggunakan klik kanan lalu pilih property
inspector. Selanjutnya isilah tab string
dengan label yang diinginkan.
Kemudian untuk mengaktifkan button “Pilih Gambar”, klik kanan pada button
tersebut, pilih menu view callbacks –
callback. Menu callback yang
telah dipilih tersebut, akan membawa ke dalam editor “Sharpeninglaplace.m”
dan menyorot ke fungsi button1 (“Pilih Gambar”). Kemudian ketikan script
ini :
proyek=guidata(gcbo);
[namafile,direktori]=uigetfile({’*.jpg’;’*.bmp’;’*.png’;’*.tif’},’Buka
Gambar’)
if isequal(namafile,0)
return;
end
eval(['cd ''' direktori ''';']);
I=imread(namafile);
set(proyek.figure1,’CurrentAxes’,proyek.axes1);
set(imshow(I));
set(proyek.figure1,’Userdata’,I);
set(proyek.axes1,’Userdata’,I);
Script diatas berfungsi untuk mencari file gambar yang berekstensi .jpg/
.bmp/ .png/ .tif. kemudian jika gambar telah dipilih akan dideklarasikan
sebagai variable I dan dimasukan ke dalam Axes1 yang telah dibuat sebelumnya.
Dengan cara yang sama kita buat button untuk melakukan
Proses Penajaman Gambar (Sharpening),
lalu aktifkan button (“Penajaman
Gambar Laplace 4”) dan ketikkan script di bawah ini :
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
if isequal(I,[])
msgbox('Belum ada
gambar!','Peringatan','warn');
else
SSF=[0 -1 0;-1 4 -1; 0 -1 0];
SSF2=[0 -1 0;-1 5 -1; 0 -1 0];
A=imfilter(I,SSF2,'replicate');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(A));
set(proyek.axes2,'Userdata',A);
B=imfilter(I,SSF,'replicate');
set(proyek.figure1,'CurrentAxes',proyek.axes3);
set(imshow(B));
set(proyek.axes3,'Userdata',B);
redo_Callback(hObject, eventdata,
handles);
end
Script diatas berfungsi untuk pemrosesan Penajaman
Gambar. Awalnya kita gunakan variable I untuk mendeteksi gambar dari
axes1 , namun jika gambar belum ada, maka akan dimunculkan alert atau message
box. Jika gambar terdeteksi makan akan dilakukan penajaman dan hasil akan
dimasukan ke dalam Axes2.
Proses Penajaman dalam
satu button ini dilakukan dengan 2 Matriks Laplace yaitu matriks deteksi tepi 4
dan matriks sharpening 5, button yang lainnya memakai 2 Matriks Laplace yaitu matriks
deteksi tepi 8 dan matriks sharpening 9.
Setelah itu, hasil dari 2 Matriks tersebut akan ditampilkan pada Axes 2
dan Axes 3.
Lalu kita buat 2 button, untuk
menyimpan 2 gambar dari Axes2 dan Axes3, dengan langkah seperti sebelumnya. Masukkan
script di bawah ini :
proyek=guidata(gcbo);
[namafile,direktori]=uiputfile({’*.jpg’;’*.*’},’Simpan
Citra’);
I=get(proyek.axes2,’Userdata’);
imwrite(I,strcat(direktori,namafile));
Script di atas berfungsi untuk
melakukan penyimpanan hasil proses Penajaman. Dengan mendeklarasikan variabel I
untuk mengambil gambar dari Axes2 dan menyimpan ke dalam direktori user untuk
menyimpan gambar pada Axes3, scriptnya sama hanya saja diganti dengan Axes3.
Jika telah selesai semua Save file “.m” , lalu run atau dapat juga dengan
menekan tombol f5.
OUTPUT :
Penajaman memakai sharpening Laplace matriks 4 dan 5 :
Penajaman memakai sharpening Laplace matriks 8 dan 9 :
Kelompok :
Muhammad Alpen Saputra Halim
Rohardi