Aplikasi Kompresi Gambar menggunakan MATLAB

Posted: 26 November 2010 in Tidak terkategori
Nama Anggota Kelompok PPC :
1. Achmad Thohir (50407016)
2. Wenny Rahmawati (50407891)

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 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. Pushbutton

Pushbutton 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 :

Pembuatan Source Code Program Kompresi
Penulisan source code pada pembuatan aplikasi dengan MATLAB menggunakan editor
M-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

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});

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 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 PPC

handles.output = hObject;

% Update handles structure

guidata(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 structure

varargout{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)’;

‘*.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);

else

return;

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 keluar

selection=questdlg([‘Keluar ‘ get(handles.figure1,’Name‘)”],…

[‘Keluar ‘ get(handles.figure1,’Name‘)”],…

Ya‘,‘Tidak‘,’Ya‘);

if strcmp(selection,’Tidak‘)

return;

end

delete(handles.figure1)

c. Setelah di compile dan di run, hasilnya seperti ini :

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 :

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.

Selamat Mencoba!

Komentar
  1. dumdum mengatakan:

    saya ada tugas kampus yang mirip dengan tulisan Anda
    bisa minta tolong kirimkan file (*.fig dan *.m)nya ke email saya?
    saya tidak bisa me-RUN program diatas,..
    terima kasih

  2. cidukz mengatakan:

    bolekah saya meminta file diatas untuk panduan proyek akhir smester saya,,,(via email)
    trims…

  3. pakai metode huffman bisa ga?

  4. mahasiswa mengatakan:

    permisi, kalo dg metode huffman,gimana y caranya?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s