Anda di halaman 1dari 39

MOD

UL
PENGOLAHAN CITRA DIGITAL
Dosen Pengampuh :
Siaulhak S.Kom.,M.Pd.

TEKNIK KOMPRESI
CITRA
MODUL

PENGOLAHAN CITRA DIGITAL


TEKNIK KOMPRESI CITRA

DOSEN PENGAMPU :
SIAULHAK, S.Kom., M.Pd.

PROGRAM
STUDI
INFORMATIKA
FAKULTAS
TEKNIK
KOMPUTER
UNIVERSITAS

OLEH :
KELOMPOK 7

NADIA IRAWAN 1904411556


AHMAD KHALID BIN MUTHY 1904411425
KARINA ELO PARAMBANAN 1904411807
DEVIANTY LUKMAN 1904411818
MEISALTRI MINTU 1904411457

PROGRAM STUDI INFORMATIKA


FAKULTAS TEKNIK KOMPUTER
UNIVERSITAS COKROAMINOTO PALOPO
2022

ii
KATA PENGANTAR

Puji syukur kami panjatkan kepada Tuhan Yang Maha Kuasa, atas limpahan
nikmat, berkah, rahmat, dan karunia-Nya, sehingga penyusunan modul
peningkatan mutu citra untuk persentasi telah selesai. Modul ini disusun sebagai
salah satu bahan ajar dalam pelaksanaan kegiatan pembelajaran pengolahan citra
digital di bangku kuliah. Didalam modul ini disajikan materi pembelajaran teknik
kompresi citra secara sederhana, efektif, dan mudah dimengerti yang disertai
contoh.
Sesuai dengan tujuan dalam pembelajaran pengolahan citra digital,
mahasiswa diharapkan dapat memahami konsep kompresi citra, menjelaskan
keterkaitan antar konsep, dan mengaplikasikannya untuk memecahkan masalah.
Mahasiswa diharapkan mampu menggunakan penalaran mengomunikasikan
gagasan dengan berbagai perangkat MATLAB.
Dalam kesempatan ini saya mengucapkan terima kasih kepada:
1. Bapak Siaulhak. S.Kom., M.Pd. selaku dosen pengampu yang telah
memberikan bimbingan dan arahan dalam penyusunan modul histogram ini.
2. Kedua orang tua saya yang selalu memberikan semangat.
Kami telah berusaha semaksimal mungkin dalam menyusun modul ini.
Apabila terdapat kesalahan dalam penulisan maka mohon maaf. Kritik dan saran
yang bersifat membangun sangat saya harapkan demi kesempurnaan modul
berikutnya. Akhirnya semoga modul ini memberikan manfaat kepada semua pihak
yang membutuhkan.

Palopo 15 Juni 2022


Penyusun,

Kelompok 7

iii
DAFTAR ISI
Halaman
SAMPUL.......................................................................................................... ii
KATA PENGANTAR...................................................................................... iii
DAFTAR ISI.................................................................................................... iv
BAB I TINJAUAN MATA KULIAH.............................................................. 1
A. Deskripsi Mata Kuliah........................................................................ 1
B. Nama Matakuliah............................................................................... 1
C. Semester/SKS..................................................................................... 2
D. Kegunaan Mata Kuliah....................................................................... 2
E. Sasaran Belajar................................................................................... 2
F. Urutan Penyajian................................................................................ 2
BAB II PENDAHULUAN............................................................................... 3
A. Sasaran Pembelajaran yang Ingin Dicapai......................................... 3
B. Ruang Lingkup Bahan Modul............................................................ 3
C. Manfaat Mempelajari Modul.............................................................. 3
D. Urutan Pembahasan............................................................................ 3
BAB III MATERI PEMBELAJARAN............................................................ 4
BAB IV MATERI PRAKTEK......................................................................... 7
BAB V LATIHAN........................................................................................... 21
BAB VI RANGKUMAN................................................................................. 33
DAFTAR PUSTAKA....................................................................................... 34

iv
v
BAB I
TINJAUAN MATA KULIAH

1. Tinjauan Pengolahan Citra Digital


a. Deskripsi Pengolahan Citra Digital
Pengolahan Citra Digital (Digital Image Processing) merupakan bidang
ilmu yang mempelajari tentang bagaimana suatu citra itu dibentuk, diolah, dan
dianalisis sehingga menghasilkan informasi yang dapat dipahami oleh manusia.
Sebelum mempelajari lebih lanjut mengenai pengolahan citra digital, kita perlu
mengetahui definisi dari citra itu terlebih dahulu. Citra merupakan fungsi dari
intensitas cahaya yang direpresentasikan dalam bidang dua dimensi.
Berdasarkan bentuk sinyal penyusunnya, citra dapat digolongkan menjadi
dua jenis yaitu citra analog dan citra digital. Citra analog adalah citra yang
dibentuk dari sinyal analog yang bersifat kontinyu, sedangkan citra digital adalah
citra yang dibentuk dari sinyal digital yang bersifat diskrit. Citra analog dihasilkan
dari alat akuisisi citra analog, contohnya adalah mata manusia dan kamera analog.
Gambaran yang tertangkap oleh mata manusia dan foto atau film yang tertangkap
oleh kamera analog merupakan contoh dari citra analog. Citra tersebut memiliki
kualitas dengan tingkat kerincian (resolusi) yang sangat baik tetapi memiliki
kelemahan di antaranya adalah tidak dapat disimpan, diolah, dan diduplikasi di
dalam komputer.
Citra digital merupakan representasi dari fungsi intensitas cahaya dalam
bentuk diskrit pada bidang dua dimensi. Citra tersusun oleh sekumpulan piksel
(picture element) yang memiliki koordinat (x,y) dan amplitudo f (x,y). Koordinat
(x,y) menunjukkan letak/posisi piksel dalam suatu citra, sedangkan amplitudo f
(x,y) menunjukkan nilai intensitas warna citra.
b. Mata Kuliah Pengolahan Citra Digital
Mata kuliah Pengolahan Citra Digital membahas beberapa teknik
pengolahan citra (image processing). Lingkup bahasan kuliah ini adalah prinsip
dasar citra digital, karakteristik citra digital, metode peningkatan kualitas citra,
dan metode ekstraksi ciri. Setelah mengikuti kuliah ini, mahasiswa diharapkan

1
telah memahami dasar dasar pengolahan citra digital sebagai sarana untuk
penelitian yang lebih lanjut dalam bidang pengolahan citra digital.
c. Semester/SKS
Mata kuliah pengolahan citra digital diajarkan pada semester 6 (genap) pada
Universitas Cokroaminoto Palopo dengan jumlah SKS sebanyak 2 (dua) SKS.
d. Kegunaan Mata Kuliah
1. Mampu memahami dan mengembangkan konsep dan tehnik dasar pengolahan
citra.
2. Mampu memahami algoritma pengolahan citra dan mengimplementasikannya
dengan bahasa pemrograman.
3. Mampu menerapkan teknik-teknik pengolahan citra untuk aplikasi pengolahan
citra yang lebih kompleks secara individu maupun dalam kelompok dalam
bentuk presentasi atau makalah.
e. Sasaran Belajar
1. Memahami maksud dan tujuan dari perkuliahan pengolahan citra digital.
2. Memahami konsep dasar teknik kompresi citra digital.
3. Memahami karakteristik citra digital.
4. Mampu menjelaskan manfaat dari pengolahan citra digital dalam kehidupan
sehari-hari.
5. Memahami fungsi dan proses kompresi terhadap suatu citra digital.
f. Urutan Penyajian
1. Gambaran umum perkuliahan
2. Mamfaat pengolahan citra digital
3. Dasar – dasar kompresi pada citra digital
4. Cara kerja kompresi pada suatu citra digital
5. Pengaruh kompresi pada suatu citra digital

2
BAB II
PENDAHULUAN

a. Sasaran Pembelajaran yang Ingin Dicapai


Mahasiswa mampu memahami fungsi dan proses peningkatan terhadap
suatu citra digital.
b. Ruang Lingkup Bahan Modul
1. Membuat tampilan GUI dari kompresi citra
2. Membuat tampilan GUI Loseless Compression, Lossy Compression, Metode
Pemampatan Huffman, Metode Pemampatan RLE
c. Mamfaat Mempelajari Modul
Mahasiswa mampu membuat tampilan GUI peningkatan mutu citra dengan
menggunakan software MATLAB
d. Urutan pembahasan
1. Definisi teknik kompresi citra
2. Definisi GUI
3. Pembuatan GUI Loseless Compression, Lossy Compression, Metode
Pemampatan Huffman, Metode Pemampatan RLE
4. Latihan
5. Rangkuman

3
BAB III
MATERI PEMBELAJARAN

1. Kompresi Citra
Image compression atau yang disebut juga kompresi citra adalah proses
untuk meminimalisasi jumlah bit yang merepresentasikan suatu citra sehingga
ukuran data citra menjadi lebih kecil. Pada dasarnya teknik kompresi citra
digunakan pada proses transmisi data (data transmission) dan penyimpanan data
(data storage). Kompresi citra banyak diaplikasikan pada penyiaran televisi,
penginderaan jarak jauh (remote sensing), komunikasi militer, radar,
telekonferensi, pencitraan kedokteran, dan lain-lain.
Dalam teknik kompresi data, redundansi dari data menjadi masalah utama.
Redudansi yaitu kejadian berulangnya data atau kumpulan data yang sama dalam
sebuah database yang mengakibatkan pemborosan media penyimpanan. 
Kompresi data ditujukan untuk mereduksi penyimpanan data yang redundan. Atau
dalam istilah lain kompresi citra digital dilakukan untuk dengan cara
meminimalkan jumlah bit yang diperlukan untuk merepresentasikan suatu data
citra, namun seringkali kualitas gambar yang dihasilkan jauh lebih buruk dari
aslinya karena keinginan kita untuk memperoleh rasio kompresi yang tinggi.
2. Konsep Dasar Teknik image compression
Teknik kompresi citra mengacu pada dua konsep dasar, yaitu :
1. Mengeksploitasi redundansi informasi yang terdapat pada pola sinyal citra
digital. Metode ini digunakan pada teknik kompresi citra lossless coding.
Redundansi tersebut dapat berupa:
1. Redundansi Spasial akibat korelasi antara piksel-piksel yang bertetangga yang
memiliki intensitas yang sama.
2. Redundansi Spektral akibat korelasi antara bidang-bidang warna yang berbeda
3. Redundansi Temporal akibat korelasi frame-frame yang berbeda pada citra
dinamis
4. Menggunakan deviasi dalam batas yang dapat ditoleransi dengan cara
mengurangi detail citra yang tidak dapat ditangkap oleh penglihatan manusia.
Resolusi spasial, waktu dan amplitudo disesuaikan dengan aplikasi yang

4
digunakan. Metode ini digunakan pada teknik kompresi citra lossy coding
dengan mengeksploitasi redundansi statistik dan visual.
Teknik kompresi data :
1. Kompresi berbasis Statistik (Lossless)
2. Kompresi berbasis Kuantisasi (Lossy)
3. Kompresi berbasis Transformasi (Lossless/Lossy)
4. Kompresi berbasis Fraktal (Lossy)
 3. Sifat Kompresi berdasarkan hasil
1. Lossless Compression
Prinsip dasar: eksploitasi data statistik citra
1. Menghasilkan citra hasil kompresi yang tepat sama dengan citra semula.
2. Dalam proses kompresinya, tidak ada informasi yang hilang.
3. Rasio kompresi sangat rendah / terbatas
4. Contoh aplikasi: citra medis, citra biner (facsimile), dll
Algoritma kompresi lossless dibagi dalam dua kategori, yaitu
a. Dictionary-based Technique
Menghasilkan file kompresi yang berisi fixed-length code (12 – 16 bits) yang
merepresentasikan sekuen bytes file asli, misalnya Run-Length Encoding dan
LZW encoding.
b. Variable Length Coding
Merepresentasikan karakter yang sering muncul dalam bit yang lebih kecil,
misalnya Huffman Coding
Contoh format file dengan kompresi lossless : GIF, PCX, BMP, TIFF, TRG, PGM
 2. Lossy Compression
a. Menghasilkan citra hasil kompresi yang hampir sama dengan citra semula.
Dalam proses kompresinya, ada informasi yang hilang namun dalam batas
toleransi tertentu.
b. Rasio kompresi tinggi
c. Contoh aplikasi: transmisi citra pada bandwidth saluran komunikasi terbatas.
d. Algoritma kompresi lossy telah banyak dikembangkan, diantaranya
menggunakan kuantisasi, fraktal, wavelet, dll

5
e. Teknik ini mengubah detail dan warna pada file citra menjadi lebih sederhana
tanpa terlihat citra menjadi lebih sederhana tanpa terlihat perbedaan yang
mencolok dalam pandangan manusia, sehingga ukurannya menjadi lebih kecil.
f. Biasanya digunakan pada citra foto atau image lain yang tidak terlalu
memerlukan detail citra, dimana kehilangan bit rate foto tidak berpengaruh
pada citra.

6
BAB IV
MATERI PRAKTEK

1) Pembuatan GUI Kompresi Losless


Langkah pertama ketik guide pada commad promd untuk membuka tampilan
editor GUI pada MATLAB kemudian pilih balnk dan tekan ok. Berikut
tampilannya.

Gambar 1. Pengetikan guide pada command promd

Gambar 2. Tampilan pilihan editor GUI


1. Setelah menekan ok maka akan mucul editor dari GUI seperti gambar
diabawah ini.

7
Gambar 3. Tampilan menu editor GUI
2. Buat tampilan gui seperti gambar dibawha ini.

Gambar 4. Gambar tampilan GUI kompresi lossless


2) Coding
1. Selesai membuat tampilan GUI dan setelah mengklik callback maka kita akan
dibawa pada coding yang harus diisi, berikut tampilannya.

8
Gambar 9. Tampilan halaman coding
2. Isi masing-masing tombol dengan coding seperti gambar dibawah ini,
 Coding tombol open
% menampilkan menu browse file
[file, path] = uigetfile({'*.bmp;*.jpg;*.png;*.tiff;';'*.*'},...
'Select an Image File');

% jika ada file citra yang dipilih maka akan mengeksekusi perintah
di
% bawahnya
if ~isequal(file,0)
Img = im2double(imread(fullfile(path,file)));
fileinfo = imfinfo(file);
SIZE = fileinfo.FileSize;
Size = SIZE/1024;
set(handles.edit3,'String',[num2str(Size),' kb']);
imshow(Img,'Parent', handles.axes1)
handles.Img = Img;
handles.fileinfo = fileinfo;
guidata(hObject, handles)

axes(handles.axes2)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
set(handles.pushbutton2,'Enable','on')
set(handles.pushbutton3,'Enable','off')
set(handles.edit4,'String',[])
set(handles.edit5,'String',[])

else
return
end

9
 Coding tombol reset
% mereset button2
axes(handles.axes1)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes2)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
set(handles.pushbutton2,'Enable','off')
set(handles.pushbutton3,'Enable','off')
set(handles.edit3,'String',[])
set(handles.edit4,'String',[])
set(handles.edit5,'String',[])

 Coding tombol exit


pilihan = questdlg('Apakah anda ingin menutup program?', ...
'Menutup Program', ...
'Ya','Tidak','Tidak');
% Handle response
switch pilihan
case 'Ya'
close
case 'Tidak'
return;
end

 Coding tombol kompresi losless


% memanggil variabel Img & fileinfo yang ada pada lokasi handles
Img = handles.Img;
fileinfo = handles.fileinfo;

% melakukan lossless kompresi terhadap citra asli


Img_comp = zeros(size(Img));
for n = 1:3
I = im2double(Img(:,:,n));
T = dctmtx(8);
B = blkproc(I,[8 8],'P1*x*P2',T,T');
mask = [1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
B2 = blkproc(B,[8 8],'P1.*x',mask);
Img_comp(:,:,n) = blkproc(B2,[8 8],'P1*x*P2',T',T);
end

file_comp = ['Hasil Kompresi.',fileinfo.Format];


imwrite(Img_comp,file_comp);
fileinfo_comp = imfinfo(file_comp);

10
SIZE = fileinfo_comp.FileSize;
Size = SIZE/1024;
set(handles.edit4,'string',[num2str(Size),' kb']);
imshow(Img_comp,'Parent',handles.axes2)

set(handles.pushbutton3,'Enable','on')
set(handles.edit5,'String',[])

handles.Img_comp = Img_comp;
handles.fileinfo_comp = fileinfo_comp;
guidata(hObject, handles)

coding hitung kompresi citra


% memanggil variabel Img, fileinfo, Img_comp, dan fileinfo_comp
yang ada
% pada lokasi handles
Img = handles.Img;
fileinfo = handles.fileinfo;
Img_comp = handles.Img_comp;
fileinfo_comp = handles.fileinfo_comp;

% kompresi
filesize = fileinfo.FileSize;
filesize_comp = fileinfo_comp.FileSize;
persen_kompresi = filesize_comp/filesize*100;
% kompresi pada edit text
set(handles.edit5,'String',persen_kompresi)

coding tombol simpan


thresh = handles.Img_comp;
[name_file_save,path_save] = uiputfile( ...
{'*.bmp','File Bitmap (*.bmp)';...
'*.jpg','File jpeg (*.jpg)';
'*.tif','File Tif (*.tif)';
'*.*','All Files (*.*)'},...
'Save Image');
if ~isequal(name_file_save,0)
imwrite(thresh,fullfile(path_save,name_file_save));
else
return

end

coding background
handles.output = hObject;
movegui(hObject,'center');
ah = axes('unit', 'normalized', 'position', [0 0 1 1]);
uistack(ah,'bottom');
bg = imread('bg.jpg'); imagesc(bg);
set(ah, 'handlevisibility', 'off', 'visible', 'off');

3. Setelah pengkodingan selesasi maka kita simpan dan menekan tombol play
untuk melihat hasil.

11
3) Hasil
Berikut hasil tampilan GUI yang ditampilkan seperti gambar berikut

Gambar 17. Tampilan GUI

Gambar 18. Tampilan tombol open image

12
Gambar 19. Tampilan kompresi lossless

Gambar 20. Tampilan tombol simpan

13
Gambar 21. Tampilan exit

2) Pembuatan GUI Kompresi Losless


Langkah pertama ketik guide pada commad promd untuk membuka tampilan
editor GUI pada MATLAB kemudian pilih balnk dan tekan ok. Berikut
tampilannya.

Gambar 1. Pengetikan guide pada command promd

14
Gambar 2. Tampilan pilihan editor GUI
3. Setelah menekan ok maka akan mucul editor dari GUI seperti gambar
diabawah ini.

Gambar 3. Tampilan menu editor GUI


4. Buat tampilan gui seperti gambar dibawha ini.

15
Gambar 4. Gambar tampilan GUI kompresi losy
2) Coding
4. Selesai membuat tampilan GUI dan setelah mengklik callback maka kita akan
dibawa pada coding yang harus diisi, berikut tampilannya.

Gambar 9. Tampilan halaman coding


5. Isi masing-masing tombol dengan coding seperti gambar dibawah ini,
 Coding tombol open
[nama_file1, nama_path1] = uigetfile( ...
{'*.bmp;*.jpg;*.tif;*.png','File Citra
(*.bmp,*.jpg,*.tif,*.png)';
'*.bmp','Windows Bitmap (*.bmp)';

16
'*.jpg','JPEG Bitmaps (*.jpg)';
'*.tif','Tiff Bitmap (*.tif)';
'*.png','Portable Network Graphics (*.png)';
'*.*','Semua File(*.*)'},...
'Buka File Citra Host/Asli');
if ~isequal(nama_file1,0)
handles.data1 = imread(fullfile(nama_path1,nama_file1));
fileinfo = imfinfo(nama_file1);
SIZE = fileinfo.FileSize;
Size = SIZE/1024;
set(handles.edit1,'String',[num2str(Size),' kb']);
guidata(hObject,handles);
handles.current_data1 = handles.data1;
axes(handles.axes1);
imshow(handles.current_data1);
else
return
end
set(handles.pushbutton2,'Enable','on')
set(handles.pushbutton3,'Enable','on')

 Coding tombol reset


axes(handles.axes1)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes2)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
set(handles.pushbutton2,'Enable','off')
set(handles.pushbutton3,'Enable','off')
set(handles.edit1,'String',[])
set(handles.edit2,'String',[])

 Coding tombol exit


pilihan = questdlg('Apakah anda ingin menutup program?', ...
'Menutup Program', ...
'Ya','Tidak','Tidak');
% Handle response
switch pilihan
case 'Ya'
close
case 'Tidak'
return;
end

 Coding tombol kompresi losless


[nama_file_simpan,path_simpan] = uiputfile(...
{'*.jpg','citra jpg (*.jpg)';
'*.*','Semua file(*.*)'},...
'Menyimpan File Citra Hasil Kompresi JPEG');
if ~isequal(nama_file_simpan,0)

17
imwrite(handles.data1,fullfile(path_simpan,nama_file_simpan),...
'quality',handles.quality);
citra_kompres =
imread(fullfile(path_simpan,nama_file_simpan));
fileinfo_comp = imfinfo(nama_file_simpan);
SIZE = fileinfo_comp.FileSize;
Size = SIZE/1024;
set(handles.edit2,'string',[num2str(Size),' kb']);
guidata(hObject,handles);
axes(handles.axes2);
imshow(citra_kompres);
else
return
end

coding quality
val = get(hObject,'Value');
switch val
case 1
quality = 25;
case 2
quality = 50;
case 3
quality = 75;
case 4
quality = 100;
end
handles.quality = quality;
guidata(hObject,handles);

coding background
handles.output = hObject;
movegui(hObject,'center');
ah = axes('unit', 'normalized', 'position', [0 0 1 1]);
uistack(ah,'bottom');
bg = imread('bg.jpg'); imagesc(bg);
set(ah, 'handlevisibility', 'off', 'visible', 'off');

coding tombol simpan


thresh = handles.Img_comp;
[name_file_save,path_save] = uiputfile( ...
{'*.bmp','File Bitmap (*.bmp)';...
'*.jpg','File jpeg (*.jpg)';
'*.tif','File Tif (*.tif)';
'*.*','All Files (*.*)'},...
'Save Image');
if ~isequal(name_file_save,0)
imwrite(thresh,fullfile(path_save,name_file_save));
else
return

end

18
6. Setelah pengkodingan selesasi maka kita simpan dan menekan tombol play
untuk melihat hasil.
3) Hasil
Berikut hasil tampilan GUI yang ditampilkan seperti gambar berikut

Gambar 18. Tampilan tombol open image

Gambar 19. Tampilan kompresi lossless

19
Gambar 20. Tampilan tombol simpan

Gambar 21. Tampilan exit

3) Pembuatan GUI Kompresi Hufman


Langkah pertama ketik guide pada commad promd untuk membuka tampilan
editor GUI pada MATLAB kemudian pilih balnk dan tekan ok. Berikut
tampilannya.

20
Gambar 1. Pengetikan guide pada command promd

Gambar 2. Tampilan pilihan editor GUI


5. Setelah menekan ok maka akan mucul editor dari GUI seperti gambar
diabawah ini.

21
Gambar 3. Tampilan menu editor GUI
6. Buat tampilan gui seperti gambar dibawha ini.

Gambar 4. Gambar tampilan GUI kompresi losy


2) Coding
7. Selesai membuat tampilan GUI dan setelah mengklik callback maka kita akan
dibawa pada coding yang harus diisi, berikut tampilannya.

22
Gambar 9. Tampilan halaman coding
8. Isi masing-masing tombol dengan coding seperti gambar dibawah ini,
 Coding tombol open
[nama_file1, nama_path1] = uigetfile( ...
{'*.bmp;*.jpg;*.tif;*.png','File Citra
(*.bmp,*.jpg,*.tif,*.png)';
'*.bmp','Windows Bitmap (*.bmp)';
'*.jpg','JPEG Bitmaps (*.jpg)';
'*.tif','Tiff Bitmap (*.tif)';
'*.png','Portable Network Graphics (*.png)';
'*.*','Semua File(*.*)'},...
'Buka File Citra Host/Asli');
if ~isequal(nama_file1,0)
handles.data1 = imread(fullfile(nama_path1,nama_file1));
fileinfo = imfinfo(nama_file1);
SIZE = fileinfo.FileSize;
Size = SIZE/1024;
set(handles.edit1,'String',[num2str(Size),' kb']);
guidata(hObject,handles);
handles.current_data1 = handles.data1;
axes(handles.axes1);
imshow(handles.current_data1);
else
return
end
set(handles.pushbutton2,'Enable','on')
set(handles.pushbutton3,'Enable','on')

 Coding tombol reset


axes(handles.axes1)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])

23
axes(handles.axes2)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
set(handles.pushbutton7,'Enable','off')
set(handles.pushbutton8,'Enable','off')
set(handles.text2,'String',[])
set(handles.text3,'String',[])

 Coding tombol exit


pilihan = questdlg('Apakah anda ingin menutup program?', ...
'Menutup Program', ...
'Ya','Tidak','Tidak');
% Handle response
switch pilihan
case 'Ya'
close
case 'Tidak'
return;
end

 Coding tombol kompresi huffman


Img = handles.Img;
fileinfo = handles.fileinfo;
Img_comp = zeros(size(Img));
for n = 1:3
I = im2double(Img(:,:,n));
T = dctmtx(8);
B = blkproc(I,[8 8],'P1*x*P2',T,T');
mask = [1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
B2 = blkproc(B,[8 8],'P1.*x',mask);
Img_comp(:,:,n) = blkproc(B2,[8 8],'P1*x*P2',T',T);
end

file_comp = ['Hasil Kompresi.',fileinfo.Format];


imwrite(Img_comp,file_comp);
fileinfo_comp = imfinfo(file_comp);
SIZE = fileinfo_comp.FileSize;
Size = SIZE/1024;
set(handles.text3,'string',[num2str(Size),' kb']);
imshow(Img_comp,'Parent',handles.axes2)

handles.Img_comp = Img_comp;
guidata(hObject, handles)

24
coding tombol simpan
thresh = handles.Img_comp;
[name_file_save,path_save] = uiputfile( ...
{'*.bmp','File Bitmap (*.bmp)';...
'*.jpg','File jpeg (*.jpg)';
'*.tif','File Tif (*.tif)';
'*.*','All Files (*.*)'},...
'Save Image');
if ~isequal(name_file_save,0)
imwrite(thresh,fullfile(path_save,name_file_save));
else
return

end

coding background
handles.output = hObject;
movegui(hObject,'center');
ah = axes('unit', 'normalized', 'position', [0 0 1 1]);
uistack(ah,'bottom');
bg = imread('bg.jpg'); imagesc(bg);
set(ah, 'handlevisibility', 'off', 'visible', 'off');

9. Setelah pengkodingan selesasi maka kita simpan dan menekan tombol play
untuk melihat hasil.
3) Hasil
Berikut hasil tampilan GUI yang ditampilkan seperti gambar berikut

Gambar 18. Tampilan tombol open image

25
Gambar 19. Tampilan kompresi hofman

Gambar 20. Tampilan tombol simpan

26
Gambar 21. Tampilan exit
C. Pembuatan GUI Profil
1. Langkah pertama ketik guide pada commad promd untuk membuka tampilan
editor GUI pada MATLAB kemudian pilih balnk dan tekan ok. Berikut
tampilannya.

Gambar 1. Pengetikan guide pada command promd

27
Gambar 2. Tampilan pilihan editor GUI
2. Setelah menekan ok maka akan mucul editor dari GUI seperti gambar
diabawah ini.

Gambar 3. Tampilan menu editor GUI


3. Buat axes, panel, tombol, popup menu dan statistic text. Seperti gambar
dibawah ini.

28
Gambar 4. Gambar tampilan GUI profil
2) Coding
1. Selesai membuat tampilan GUI dan setelah mengklik callback maka kita akan
dibawa pada coding yang harus diisi, berikut tampilannya.

Gambar 9. Tampilan halaman coding


2. Isi masing-masing tombol dengan coding seperti gambar dibawah ini,

29
 Coding pop up menu
pilihan = get(handles.popupmenu1, 'value');
axes(handles.axes1);
switch pilihan
case 2
gambar = imread('ahmad.jpeg');
set(handles.text2,'string', {'Nama : Ahmad Khalid Bin
Walid Muthy';...
'NIM : 1904411425';'Alamat : Blok A-B, Salekoe, wara
timur'});
case 3
gambar = imread('anggota1.jpeg');
set(handles.text2, 'string', {'Nama : Karina Elo
Parambanan';...
'NIM : 1904411807';'Alamat : Jl Ratulangi, libukang permai
perumahan griya bukit salobulo blok d nmr 8, kota Palopo'});
case 4
gambar = imread('anggota2.jpeg');
set(handles.text2, 'string', {'Nama : Mei Saltri
Mintu';...
'NIM : 1904411557';'Alamat : Desa Tabah Kec, Walenrang
timur Kab, Luwu'});
case 5
gambar = imread('anggota3.jpeg');
set(handles.text2, 'string', {'Nama : Devianty Lukman';...
'NIM : 1904411818';'Alamat : Jln. A. Djemma, kecamatan
malili, kabupaten luwu timur'});
case 6
gambar = imread('anggota4.jpeg');
set(handles.text2, 'string', {'Nama : Nadia Irawan';...
'NIM : 1904411556';'Alamat : Jl. Andi Tenriadjeng, Lr.
Cimpu, No. 10, Kota Palopo'});

end
imshow(gambar);

coding background
movegui(hObject,'center');
ah = axes('unit', 'normalized', 'position', [0 0 1 1]);
uistack(ah,'bottom');
bg = imread('bg.jpg'); imagesc(bg);
set(ah, 'handlevisibility', 'off', 'visible', 'off');

3. Setelah pengkodingan selesasi maka kita simpan dan menekan tombol play
untuk melihat hasil.
3) Hasil
Berikut hasil tampilan GUI yang ditampilkan seperti gambar berikut

30
Gambar 17. Tampilan GUI profil

Gambar 18. Tampilan profil ketua

31
BAB V
LATIHAN

1. Buatlah tampilan GUI Loseless Compression, Lossy Compression,


Metode Pemampatan Huffman, Metode Pemampatan RLE Buatlah
tampilan GUI profil
2. Buat Slide Presetasi Dalam Bentuk Ppt Dan Video Materi Pembelajaran
Min Durasi Video 15 Menit Dan Di Desain

32
BAB VI
RANGKUMAN

Image compression atau yang disebut juga kompresi citra adalah proses
untuk meminimalisasi jumlah bit yang merepresentasikan suatu citra sehingga
ukuran data citra menjadi lebih kecil. Pada dasarnya teknik kompresi citra
digunakan pada proses transmisi data (data transmission) dan penyimpanan data
(data storage). Kompresi citra banyak diaplikasikan pada penyiaran televisi,
penginderaan jarak jauh (remote sensing), komunikasi militer, radar,
telekonferensi, pencitraan kedokteran, dan lain-lain.
Dalam teknik kompresi data, redundansi dari data menjadi masalah utama.
Redudansi yaitu kejadian berulangnya data atau kumpulan data yang sama dalam
sebuah database yang mengakibatkan pemborosan media penyimpanan. 
Kompresi data ditujukan untuk mereduksi penyimpanan data yang redundan. Atau
dalam istilah lain kompresi citra digital dilakukan untuk dengan cara
meminimalkan jumlah bit yang diperlukan untuk merepresentasikan suatu data
citra, namun seringkali kualitas gambar yang dihasilkan jauh lebih buruk dari
aslinya karena keinginan kita untuk memperoleh rasio kompresi yang tinggi.

33
DAFTAR PUSTAKA

Adet Pramadihanto, Image Enhancement, Inhouse Training Politeknik


Elektronika Negeri Surabaya, 1999.
Acmad Basuki dkk,Pengolahan Citra Menggunakan Visual Basic,Graha Ilmu
Aniati murni Arymurthy & Suryana Setiawan, Pengantar Pengolahan Citra, Elex
Media Komputindo, 1992
Burger, Burge. Digital Image Processing, An Algorithmic Introduction Using
Java. Springer.
Gonzales, Rafael C., Digital Image Processing, Second Edition, Addison-wesley
publishing, 1992
Jain, Anil K., Fundamentals of Digital Image Processing, Prentice Hall
international, 1989
Maria, Costas. 2010. Image Processing, Pengolahan Citra Digital, Darma Putra,
2010, Andi Publishe
Rafael C. Gonzales E.Woods,”Digital Image Processing,2nd Edition”,Prentice
Hall,2001
Richard Alan Peter, “Lecture Notes 2007“
Richard Szeliski, “Computer Vision: Algorithms and Applications,23 April 2010
Rinaldi Munir, Pengolahan Citra digital dengan Pendekatan Algoritmik, Penerbit
Informatika Bandung, 2004
Riyanto Sigit dkk, ” Step by Step dkk,Pengolahan Citra Menggunakan Visual C+
+”,Andi Offset
Wanasanan Thongsongkrit, ” Lecture Notes” Willey, Digital Image Processing,
3rd edition, 2001

34

Anda mungkin juga menyukai