Lompat ke konten Lompat ke sidebar Lompat ke footer

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.

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