12
kumpulan latihan dengan menggunakan MATLAB Aplikasi Kompresi Gambar menggunakan MATLAB Pengolahan Citra adalah Pemrosesan citra, khususnya dengan menggunakan komputer, menjadikan citra dengan kualitas yang lebih baik. Pengolahan Citra bertujuan untuk memperbaiki kualitas citra agar mudah diinterprestasi oleh manusia atau mesin (dalam hal ini komputer). Teknik-teknik pengolahan citra mentransformasikan citra menjadi citra lain, salah satunya adalah kompresi citra (image compression). Jadi, masukannya adalah citra dan keluarannya juga citra, namun citra keluarannya mempunyai ukuran citra lebih kecil daripada citra masukannya. Kompresi merupakan proses untuk menghilangkan berbagai kerumitan yang tidak penting (redudansi) dari suatu informasi dengan cara memadatkan isi file sehingga ukurannya menjadi lebih kecil dengan memaksimalkan kesederhanaannya dan tetap menjaga kualitas penggambaran dari informasi tersebut. Aplikasi kompresi yang saya buat menggunakan masukan (input) berupa citra dengan beberapa format seperti format JPEG, Bitmap, PNG, dan TIF dan menghasilkan keluaran (output) berupa citra dengan format JPEG. Langkah – langkah pembuatan Program Kompresi A. Membuat Desain Figure Aplikasi kompresi ini dibuat menggunakan MATLAB 7.1 dengan membuat sebuah user interface MATLAB dengan fasilitas GUIDE. Untuk membuat sebuah user interface dimulai dengan mmbuat desain sebuah figure dengan memanfaatkan uicontrol (control user interface) yang tersedia di editor figure. Uicontrol yang digunakan untuk membuat aplikasi kompresi ini adalah : 1. Axes Axes digunakan untuk menampilkan sebuah grafik atau gambar (image). Pada pembuatan aplikasi ini digunakan 2 Axes yang digunakan untuk menampilkan citra asli dan citra kompresi. 2. Static Text Static Text akan menghasilkan teks bersifat tetap sehingga user tidak dapat melakukan perubahan. Teks dan beberapa fasilitas lainnya dapat diatur dalam static text. Seperti jenis dan ukuran

Kumpulan Latihan Dengan Menggunakan MATLAB

Embed Size (px)

Citation preview

Page 1: Kumpulan Latihan Dengan Menggunakan MATLAB

kumpulan latihan dengan menggunakan MATLAB

 Aplikasi Kompresi Gambar menggunakan MATLAB Pengolahan Citra adalah Pemrosesan citra, khususnya dengan menggunakan komputer, menjadikan citra dengan kualitas yang lebih baik. Pengolahan Citra bertujuan untuk memperbaiki kualitas citra agar mudah diinterprestasi oleh manusia atau mesin (dalam hal ini komputer). Teknik-teknik pengolahan citra mentransformasikan citra menjadi citra lain, salah satunya adalah kompresi citra (image compression). Jadi, masukannya adalah citra dan keluarannya juga citra, namun citra keluarannya mempunyai ukuran citra lebih kecil daripada citra masukannya.Kompresi merupakan proses untuk menghilangkan berbagai kerumitan yang tidak penting (redudansi) dari suatu informasi dengan cara memadatkan isi file sehingga ukurannya menjadi lebih kecil dengan memaksimalkan kesederhanaannya dan tetap menjaga kualitas penggambaran dari informasi tersebut. Aplikasi kompresi yang saya buat menggunakan masukan (input) berupa citra dengan beberapa format seperti format JPEG, Bitmap, PNG, dan TIF dan menghasilkan keluaran (output) berupa citra dengan format JPEG.Langkah – langkah pembuatan Program KompresiA.    Membuat Desain FigureAplikasi kompresi ini dibuat menggunakan MATLAB 7.1 dengan membuat sebuah user interface MATLAB dengan fasilitas GUIDE. Untuk membuat sebuah user interface dimulai dengan mmbuat desain sebuah figure dengan memanfaatkan uicontrol (control user interface) yang tersedia di editor figure. Uicontrol yang digunakan untuk membuat aplikasi kompresi ini adalah :1. AxesAxes digunakan untuk menampilkan sebuah grafik atau gambar (image). Pada pembuatan aplikasi ini digunakan 2 Axes yang digunakan untuk menampilkan citra asli dan citra kompresi.2. Static TextStatic Text akan menghasilkan teks bersifat tetap sehingga user tidak dapat melakukan perubahan. Teks dan beberapa fasilitas lainnya dapat diatur dalam static text. Seperti jenis dan ukuran font, warna dll. Pada pembuatan aplikasi kompresi ini terdapat 2 static text yaitu Nama file untuk citra masukan dan Nama file untuk citra keluaran.3. PushbuttonPushbutton merupakan jenis control berupa tombol tekan yang akan menghasilkan sebuah tindakan jika diklik. Pada pembuatan aplikasi ini, pushbutton yang digunakan adalah Pilih Gambar, Kompres dan Keluar.

Berikut adalah Desain Aplikasi Kompres JPEG :

Page 2: Kumpulan Latihan Dengan Menggunakan MATLAB

Pembuatan Source Code Program KompresiPenulisan source code pada pembuatan aplikasi dengan MATLAB menggunakan editorM-file.a.    Buka Layout Figure yang telah dibuat, lalu klik kanan pada figure pilih M-file.b.    Ketikkan source code pada Editor M-file.Program kompresi ini disimpan dengan nama PPC.fig. Pada MATLAB terdapat function yang tersedia secara otomatis seperti dibawah ini :function varargout = PPC(varargin)% PPC M-file for PPC.fig%      PPC, by itself, creates a new PPC or raises the existing%      singleton*.%%      H = PPC returns the handle to a new PPC or the handle to%      the existing singleton*.%%      PPC(‘CALLBACK’,hObject,eventData,handles,…) calls the local%      function named CALLBACK in PPC.M with the given input arguments.%%      PPC(‘Property’,'Value’,…) creates a new PPC or raises the%      existing singleton*.  Starting from the left, property value pairs are%      applied to the GUI before PPC_OpeningFunction gets called.  An%      unrecognized property name or invalid value makes property application%      stop.  All inputs are passed to PPC_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 PPC% Last Modified by GUIDE v2.5 23-Nov-2010 15:28:23% Begin initialization code – DO NOT EDIT

Page 3: Kumpulan Latihan Dengan Menggunakan MATLAB

gui_Singleton = 1;gui_State = struct( ‘gui_Name‘,                  mfilename, …‘gui_Singleton’,           gui_Singleton, …‘gui_OpeningFcn’,     @PPC_OpeningFcn, …‘gui_OutputFcn’,        @PPC_OutputFcn, …‘gui_LayoutFcn’,        [] , …‘gui_Callback’,             []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code – DO NOT EDIT% — Executes just before PPC is made visible.function PPC_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 PPC (see VARARGIN)% Choose default command line output for PPChandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes PPC wait for user response (see UIRESUME)% uiwait(handles.figure1);% — Outputs from this function are returned to the command line.function varargout = PPC_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 structurevarargout{1} = handles.output;% — Executes on button press in buka.function buka_Callback(hObject, eventdata, handles)% hObject    handle to buka (see GCBO)% eventdata  reserved – to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)%Bagian ini merupakan bagian yang mengatur satuan gambar yang digunakan untuk kompresi citra masukan.[nama_file1, nama_path1]=uigetfile( …{‘*.bmp;,*.jpg’,'File Citra(*.bmp,*.jpg)’;

Page 4: Kumpulan Latihan Dengan Menggunakan MATLAB

‘*.bmp’,'File Bitmap(*.bmp)’;…‘*.jpg’,'File JPEG(*.jpg)’;‘*.*’,'Semua File(*.*)‘},…‘Buka File Citra Host/Asli’);if ~isequal(nama_file1, 0)handles.data1=imread(fullfile(nama_path1,nama_file1));guidata(hObject,handles);handles.current_data1=handles.data1;axes(handles.Gambar1);imshow(handles.current_data1);set(handles.text2,’String’,nama_file1);elsereturn;end% — Executes on button press in kompres.function kompres_Callback(hObject, eventdata, handles)% hObject    handle to kompres (see GCBO)% eventdata  reserved – to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)%Bagian ini menunjukkan bahwa hasil kompresi hanya akan berformat .jpg[nama_file_simpan, path_simpan]=uiputfile(…{‘*.jpg’,'File citra(*.jpg)‘;‘*.jpg’,'Citra JPEG(*.jpg)’;…‘*.*’,'Semua File(*.*)’},…‘Menyimpan File Citra Hasil Kompresi JPEG’);imwrite(handles.data1, fullfile(path_simpan, nama_file_simpan));citra_kompres=imread(fullfile(path_simpan, nama_file_simpan));guidata(hObject,handles);axes(handles.Gambar2);imshow(citra_kompres);set(handles.text4,’String‘,nama_file_simpan);% — Executes on button press in keluar.function keluar_Callback(hObject, eventdata, handles)% hObject    handle to keluar (see GCBO)% eventdata  reserved – to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)%Bagian ini merupakan perintah untuk kotak dialog keluarselection=questdlg(['Keluar ' get(handles.figure1,'Name')''],…['Keluar ' get(handles.figure1,'Name')''],…‘Ya‘,‘Tidak‘,’Ya‘);if strcmp(selection,’Tidak‘)return;enddelete(handles.figure1)c. Setelah di compile dan di run, hasilnya seperti ini :

Page 5: Kumpulan Latihan Dengan Menggunakan MATLAB

d.    Jika kita memilih button Pilih Gambar, maka akan muncul kotak dialog seperti dibawah ini :

e.      Selanjutnya kita pilih gambar yang kita inginkan masing-masing. Dalam hal ini saya memilih file nolte.bmp

f.    Langkah selanjutnya setelah kita memilih button kompress, program ini terlebih dahulu meminta direktori yang akan menjadi tempat tujuan disimpannya file gambar tersebut setelah dikompresi. Lihat kotak dialog dibawah ini :

Page 6: Kumpulan Latihan Dengan Menggunakan MATLAB

g.    Hasil kompresi dapat dilihat dibawah ini. Perubahan terjadi, gambar masukan awalnya berformat .bmp menjadi .jpg dengan ukuran yang lebih kecil.

h.    Dan jika kita memilih button Keluar, muncul kotak dialog untuk memastikan apakah kita serius untuk keluar dari program kompresi ini.

latihan yang kedua

Aplikasi Rotasi Image dengan matlab 7

Labels: PC

Page 7: Kumpulan Latihan Dengan Menggunakan MATLAB

untuk membuatalpikasi pengolahan citra rotasi kita menggunakan matlab 7 karena pada matlab 7 sudah menyediakan fasilitas GUI.langusng saja buka matlab 7 anda, kemudian pilih file> new> GUIpertama kita akan membuat menu dengan menu editor.pada tampilan GUI klik icon menu editor.

setelah keluar jendela menu editor buat sebuah menu dengan label "open". Accelerator nya Ctrl + O ganti tag nya menjadi "buka"buat menu baru label "save". Accelerator nya Ctrl + S ganti tag nya menjadi "simpan"buat 1 menu lagi dengan label "exit" tag "keluar", klik ok jika anda sudah selesai membuat menu.

langkah selanjutnya adalah membuat static text dan ubah property nya dengan melakukan double click.text1 ubah string : "Program Aplikasi untuk Merotasi Citra"text2 ubah string : "Citra Asli"text3 ubah string : "Citra Hasil Rotasi"text4 ubah string : "Derajat Rotasi"

untuk tag nya biarkan saja default text1, text2 dll. guna tag yaitu untuk di function nya nanti. jadi ketika kita ingin memberi aksi pada text1 kita tinggal menambahkan kode pada function text1

Kemudian buat 2 axes.buat 1 edit text

terakhir buat slider ubah propery min nya 1.0 dan max 360.0 susun sehingga seperti ini

Page 8: Kumpulan Latihan Dengan Menggunakan MATLAB

simpan file anda dan secara otomatis anda akan mendapatkan file dengan extensi .mselesai untuk GUI sekarang kita ke programming, bukalah file .m anda.

cari function slider1_Callback(hObject, eventdata, handles)tambahkan koding berikut% get(hObject,'Min') and get(hObject,'Max') to determine range of slidernilai_slider = get(handles.slider1,'Value');handles.nilai_slider=round(nilai_slider);guidata(hObject,handles);set(handles.edit1,'String',handles.nilai_slider);hasil = imrotate(handles.data1,handles.nilai_slider,'bilinear','crop');handles.hasil=hasil;guidata(hObject,handles);axes(handles.axes2);imshow(hasil);

kemudian cari function buka_Callback(hObject, eventdata, handles)tambahkan[nama_file1, nama_path1]=uigetfile(...{'*.bmp;*.jpg','File Citra (*.bmp,*.jpg)';'*.bmp','File Bitmap (*.bmp)';...'*.jpg','File jpeg (*.jpg)';'*.*','Semua File (*.*)'},...'Buka File Citra Host/Asli');if ~isequal(nama_file1, 0)handles.data1=imread(fullfile(nama_path1,nama_file1));guidata(hObject,handles);handles.current_data1=handles.data1;axes(handles.axes1);imshow(handles.current_data1);axes(handles.axes2);

Page 9: Kumpulan Latihan Dengan Menggunakan MATLAB

imshow(handles.current_data1);elsereturn;end

selanjutnya pada bagian function simpan_Callback(hObject, eventdata, handles)[nama_file_simpan, path_simpan]=uiputfile(...{'*.bmp','file citra (*.bmp)';'*.bmp','citra bmp (*.bmp)';...'*.*','Semua File (*.*)'},...'Menyimpan Citra Hasil Rotasi');imwrite(handles.hasil,fullfile(path_simpan,nama_file_simpan),'BMP');

function keluar_Callback(hObject, eventdata, handles)selection = questdlg(['Tutup ' get(handles.figure1,'Name') '?'],...['Tutup ' get(handles.figure1,'Name') '...'],...'Ya','Tidak','Ya');if strcmp(selection,'Tidak')return;enddelete(handles.figure1)

selesai jalankan aplikasi dengan mengklik Run.