Pengolahan Citra Digital Matlab (Basic)
Pengolahan Citra Digital
Pengolahan citra digital merupakan proses yang bertujuan untuk memanipulasi dan menganalisis citra dengan bantuan komputer. Pengolahan citra digital dapat dikelompokkan dalam dua jenis kegiatan :
1. Memperbaiki kualitas suatu gambar, sehingga dapat lebih mudah diinterpretasi oleh mata manusia.
2. Mengolah informasi yang terdapat pada suatu gambar untuk keperluan pengenalan objek secara otomatis.
Bidang aplikasi kedua yang sangat erat hubungannya dengan ilmu pengetahuan pole (pattern recognition) yang umumnya bertujuan mengenali suatu objek dengan cara mengekstrak informasi penting yang terdapat pada suatu citra. Bila pengenalan pola dihubungkan dengan pengolahan citra, diharapkan akan terbentuk suatu sistem yang dapat memproses citra masukan sehingga citra tersebut dapat dikenali polanya. Proses ini disebut pengenalan citra atau image recognition. Proses pengenalan citra ini sering diterapkan dalam kehidupan sehari-hari.
Pengolahan citra dan pengenalan pola menjadi bagian dari proses pengenalan citra. Kedua aplikasi ini akan saling melengkapi untuk mendapatkan ciri khas dari suatu citra yang hendak dikenali. Secara umum tahapan pengolahan citra digital meliputi akusisi citra, peningkatan kualitas citra, segmentasi citra, representasi dan uraian, pengenalan dan interpretasi.
Pengolahan citra dan pengenalan pola menjadi bagian dari proses pengenalan citra. Kedua aplikasi ini akan saling melengkapi untuk mendapatkan ciri khas dari suatu citra yang hendak dikenali. Secara umum tahapan pengolahan citra digital meliputi akusisi citra, peningkatan kualitas citra, segmentasi citra, representasi dan uraian, pengenalan dan interpretasi.
Aplikasi Citra Digital Menggunakan Matlab
Buat Layout seperti gambar dibawah ini :
Beri nama pada masing-masing tag komponen yang digunakan..
Source Code :
function btnBrowse_Callback(hObject, eventdata, handles)
[namafile,direktori]=uigetfile({'*.png;*.jpg','file Image(*.bmp,*.gif)';'*.*','semua file(*.*)'},'buka file image');
alamatimage=fullfile(direktori,namafile);
set(handles.edBrowse,'String',alamatimage);
I=imread(alamatimage);
w=size(I,1);
h=size(I,2);
s=size(I,3);
D='1 DImensi';
if s>=3
D='2 Dimensi';
end
set(handles.ed1,'String',num2str(w));
set(handles.ed2,'String',num2str(h));
set(handles.edType,'String',D);
set(handles.figure1,'CurrentAxes',handles.axes1);
imshow(I);
set(handles.axes1,'Userdata',I);
myicon(:,:,1) = [0 1; 0 1];
myicon(:,:,2) = [.8 1; 0 .3];
myicon(:,:,3) = [.3 0; .9 .5];
h=msgbox('Sukses Load Image','Success','custom',myicon);
function btnResize_Callback(hObject, eventdata, handles)
I=get(handles.axes1,'Userdata');
n1=get(handles.ed3,'String');
n2=get(handles.ed4,'String');
in1=str2num(n1);
in2=str2num(n2);
Z=imresize(I,[in1,in2]);
set(handles.figure1,'CurrentAxes',handles.axes2);
imshow(Z);
set(handles.axes2,'Userdata',Z);
baris=in1;
kolom=in2;
header= linspace(1,kolom,kolom);
row = linspace(1,baris,baris);
ZZ=rgb2gray(Z);
set(handles.myTable,'data',ZZ,'ColumnName',header,'RowName',row);
set(handles.myTable,'Userdata',ZZ);
h=msgbox('Sukses Load Image','Success','help');
function btnReset_Callback(hObject, eventdata, handles)
mau=questdlg(['Reset ' get(handles.figure1,'Name')''],['Anda ingin Reset Aplikasi ini?'],'Ya','Tidak','Ya');
if strcmp(mau,'Tidak')
return;
else
set(handles.ed1,'String','');
set(handles.ed2,'String','');
set(handles.ed3,'String','100');
set(handles.ed4,'String','100');
set(handles.edBrowse,'String','');
set(handles.btnRed,'Enable','off');%on
set(handles.btnGreen,'Enable','off');%on
set(handles.btnBlue,'Enable','off');%on
set(handles.btnGray,'Enable','off');%on
end
function btnGrayScale_Callback(hObject, eventdata, handles)
Z=get(handles.axes2,'Userdata');
I=rgb2gray(Z);
set(handles.figure1,'CurrentAxes',handles.axes3);
imshow(I);
set(handles.axes3,'Userdata',I);
set(handles.figure1,'CurrentAxes',handles.axes4);
imhist(I);
function btnRed_Callback(hObject, eventdata, handles)
Z=get(handles.axes2,'Userdata');
I=Z(:,:,1);
set(handles.figure1,'CurrentAxes',handles.axes3);
imshow(I);
set(handles.axes3,'Userdata',I);
set(handles.figure1,'CurrentAxes',handles.axes4);
imhist(I);
function btnGreen_Callback(hObject, eventdata, handles)
Z=get(handles.axes2,'Userdata');
I=Z(:,:,2);
set(handles.figure1,'CurrentAxes',handles.axes3);
imshow(I);
set(handles.axes3,'Userdata',I);
set(handles.figure1,'CurrentAxes',handles.axes4);
imhist(I);
function btnBlue_Callback(hObject, eventdata, handles)
Z=get(handles.axes2,'Userdata');
I=Z(:,:,3);
set(handles.figure1,'CurrentAxes',handles.axes3);
imshow(I);
set(handles.axes3,'Userdata',I);
set(handles.figure1,'CurrentAxes',handles.axes4);
imhist(I);
function btnNormalisasi_Callback(hObject, eventdata, handles)
I=get(handles.axes3,'Userdata');
bw=im2bw(I);
set(handles.figure1,'CurrentAxes',handles.axes5);
imshow(bw);
set(handles.axes5,'Userdata',bw);
set(handles.figure1,'CurrentAxes',handles.axes6);
imhist(bw);
function btnNoise_Callback(hObject, eventdata, handles)
I=get(handles.axes3,'Userdata');
J = imnoise(I,'salt & pepper',0.12);
set(handles.figure1,'CurrentAxes',handles.axes7);
imshow(J);
set(handles.axes7,'Userdata',J);
N = imnoise(I,'gaussian',0,0.2);%pilih1
K = wiener2(J,[5 5]);%pilih2
M = medfilt2(J);
set(handles.figure1,'CurrentAxes',handles.axes8);
imshow(M);
set(handles.axes8,'Userdata',M);
function btnEdge_Callback(hObject, eventdata, handles)
I=get(handles.axes8,'Userdata');
ED = edge(I,'Canny');
set(handles.figure1,'CurrentAxes',handles.axes9);
imshow(ED);
set(handles.axes9,'Userdata',ED);
set(handles.figure1,'CurrentAxes',handles.axes10);
imhist(ED);
function btnSave9_Callback(hObject, eventdata, handles)
proyek=guidata(gcbo);
mau=questdlg(['SAVE ' get(handles.figure1,'Name')''],['Anda ingin Save hasil image ED ini?'],'Ya','Tidak','Ya');
if strcmp(mau,'Tidak')
return;
else
[namafile, direktori] = uiputfile({'*.png';'*.jpg';'*.bmp';'*.*'},'Save as')
path=fullfile(direktori,namafile);
I=get(handles.axes9,'Userdata');
%save (path,I)
imwrite(I,path);
msgbox(['Process New File RTF :@ ' direktori '\' namafile ' has Succesfully to Save']);
end
function pushbutton13_Callback(hObject, eventdata, handles)
proyek=guidata(gcbo);
mau=questdlg(['SAVE ' get(handles.figure1,'Name')''],['Anda ingin Save hasil image Normalisasi ini?'],'Ya','Tidak','Ya');
if strcmp(mau,'Tidak')
return;
else
[namafile, direktori] = uiputfile({'*.png';'*.jpg';'*.bmp';'*.*'},'Save as')
path=fullfile(direktori,namafile);
I=get(handles.axes7,'Userdata');
%save (path,I)
imwrite(I,path);
msgbox(['Process New File RTF :@ ' direktori '\' namafile ' has Succesfully to Save']);
end
hasilnya...
Itu tadi cara membuat aplikasi pengolahan citra digital menggunakan matlab. ada banyak cara untuk pengolahan citra digital seperti pada Edge detection, Noise remover ataupun Normalisasi(im2bw) . akan saya berikan beberapa contoh di Post selanjutnya.
Selamat mencoba dan perbanyak latihan.. untuk scriptnya jangan dihafal, tapi dipahami. Jika ada yang berminat mengikuti kursus Matlab, kunjungi website kami di http://lp2maray.com.
Posting Komentar untuk "Pengolahan Citra Digital Matlab (Basic)"