Teori Kompresi
Mengapa perlu kompresi dan reduksi data?
l  Data citra umumnya berukuran besar
l  Tidak praktis dalam aspek penyimpanan, proses dan transmisi
l  Perlu reduksi atau pemampatan data dengan mengurangi redundancy atau duplikasi data    
Data redundancy:
adalah bagian data yang tidak mengandung informasi terkait atau merupakan pengulangan dari informasi yang sudah dinyatakan sebelumnya atau sudah diketahui
Aplikasi yang membutuhkan image compression: dimana perkembangannya ditentukan oleh efisiensi pada manipulasi data, penyimpanan, dan transmisi citra biner / monokrom / berwarna:
l  Televideo-conferencing
l  Remote sensing
l  Telemedical / Medical imaging
l  Facsimile transmission

Kategori Teknik Kompresi Citra :
l  Information preserving (lossless compression): teknik yang memproses data asli menjadi bentuk yang lebih ringkas tanpa hilangnya informasi.  Contoh: Aplikasi biomedis.
l  Lossy compression: teknik mendapatkan data yang lebih ringkas dengan melalui suatu proses penghampiran (approksimasi) dari data asli dengan tingkat error yang dapat diterima.  Contoh: TV broadcast.

Ada 3 jenis data redundancy pada citra:
l  Coding redundancy. Terjadi bila suatu kode simbol yang digunakan terdiri dari sejumlah bit yang melebihi jumlah bit yang diperlukan untuk representasi setiap simbol (dalam hal ini: tingkat keabuan piksel citra).
l  Interpixel redundancy. data redundancy dinyatakan dengan korelasi antar piksel dimana intensitas suatu piksel dapat diperkirakan dari intensitas piksel-piksel tetangganya. Artinya: informasi yang dibawa oleh setiap piksel relatif tidak besar atau kontribusi setiap piksel kepada gambar secara keseluruhan adalah redundan.                       
l  Psychovisual redundancy. Suatu fenomena dimana intensitas keabuan yang bervariasi dilihat sebagai intensitas konstan, artinya: mata tidak mempunyai sensitivitas yang sama terhadap semua informasi yang dianggap penting dan tidak penting. Hal tersebut diatas dapat dikatakan sebagai psychovisual redundancy, yang bila dihilangkan tidak mengganggu persepsi kwalitas citra.
Suatu data dikatakan terkompresi jika satu atau lebih redundancy tersebut bisa dikurangi atau dihilangkan.
Untuk listing program sebagai berikut:
function varargout = Kompresi(varargin)
% KOMPRESI MATLAB code for Kompresi.fig
%      KOMPRESI, by itself, creates a new KOMPRESI or raises the existing
%      singleton*.
%
%      H = KOMPRESI returns the handle to a new KOMPRESI or the handle to
%      the existing singleton*.
%
%      KOMPRESI('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in KOMPRESI.M with the given input arguments.
%
%      KOMPRESI('Property','Value',...) creates a new KOMPRESI or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before Kompresi_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to Kompresi_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 Kompresi

% Last Modified by GUIDE v2.5 02-Nov-2012 08:16:52

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Kompresi_OpeningFcn, ...
                   'gui_OutputFcn',  @Kompresi_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 Kompresi is made visible.
function Kompresi_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 Kompresi (see VARARGIN)

% Choose default command line output for Kompresi
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes Kompresi wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = Kompresi_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)
 [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);
    set(handles.text8,'String',nama_file1);
    set(handles.text9,'String',size(handles.data1,2));
   
else
return;end

% --- 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)
[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.axes2);
imshow(citra_kompres);
set(handles.text10,'String',nama_file_simpan);
set(handles.text11,'String',size(handles.data1,1));


% --- 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)
selection=questdlg(['Keluar ' get(handles.figure1,'Name')''],...
['Keluar ' get(handles.figure1,'Name')''],...
'Ya','Tidak','Ya');
if strcmp(selection,'Tidak')
return;
end
delete(handles.figure1)
Pembuatan Aplikasi
1.        Penginstalan MATLAB
Langkah pertama untuk membuat aplikasi ini adalah menginstall MATLAB & SIMULINK R2011a. Proses peng-instal-an ini dilakukan pada sistem operasi Microsoft windows, jika software ini ada pada komputer, maka akan digunakan untuk mengompile skrip coding yang dibuat.

a.       Software MATLAB & SIMULINK R2011a bisa didapatkan dengan cara men-download atau membeli cd aslinya. Namun pada kesempatan ini penulis men-download

b.      Kemudian kita akan melakukan penginstalan MATLAB tersebut. Langkah-langkah disesuaikan dengan tampilan gambar dibawah ini:


c.       Pada folder yang telah kita download akan ada aktivasi yang dilakukan dan dimasukan ke dalam Installation key dan memasukan nilai kedalamnya.


d.      Lalu kita atur tempat kita akan menginstal MATLAB tersebut di C:\Program Files\MATLAB\R2011a.



e.       Dari tampilan di atas akan diinstal beberapa library yang akan digunakan untuk menjalankan program MATLAB yang akan kita buat. Kemudian akan diproses penginstalan yang akan mensupport kinerja MATLAB. Dari sini akan ditunggu proses penginstalan sampai tahap selanjutnya.





f.       Pada folder download kembali akan kita masukan Path yang ada di dalam folder tersebut dan menunjuk ke lic_standalone.dat. yang digunakan untuk mengaktifkan License tersebut.


g.      Dan akhirnya untuk penginstalan telah selesai dilakukan.

2.        Pembuatan Program
Pada tampilan awal MATLAB yang dibuat akan muncul seperti pada gambar:


Kemudian pertama akan kita buat tampilan yang ingin kita buat sesuai keinginan, dengan cara File->New->GUI yang akan muncul seperti berikut:


Langkah selanjutnya kita akan membuat GUI baru dengan cara Create New GUI -> Blank GUI (default). Bisa dilihat pada gambar:

Maka akan muncul Tampilan GUI seperti pada gambar berikut:


Pada ToolBar yang ada disamping GUI tersebut akan kita buat dengan tampilan sebagai berikut:

Selanjutnya adalah tampilan akhir untuk GUI dari aplikasi ini akan menjadi seperti ini jika kita jalankan.
      


Berikut ini adalah contoh perubahan image yang terjadi ketika aplikasi dijalankan.


Gambar awal


Gambar akhir



Hal yang terjadi pada gambar ini adalah
1.      Gambar awal 1,02MB ketika di kompresi menjadi 270KB
2.      Perubahan sedikit pada warna yang pada gambar awal gambar memiliki detail yang jelas namun setelah dikompresi warna gambar sedikti berkurang.
Di Postkan oleh kelompok: Dewo Sidharta Simanjutak dan Rudy Kurniawan (4IA03)

0 komentar:

Posting Komentar

Navigation

Total Pageviews

Diberdayakan oleh Blogger.

Popular Posts

Pengikut