• Tidak ada hasil yang ditemukan

Kompresi Citra Menggunakan Independent Component Analysis (ICA).

N/A
N/A
Protected

Academic year: 2017

Membagikan "Kompresi Citra Menggunakan Independent Component Analysis (ICA)."

Copied!
33
0
0

Teks penuh

(1)

i Universitas Kristen Maranatha

KOMPRESI CITRA MENGGUNAKAN

INDEPENDENT COMPONENT ANALYSIS

Lucky Khoerniawan / 0222104

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia

Email : khoerniawan.lucky@yahoo.com

ABSTRAK

Ukuran media penyimpanan data yang terbatas dan kebutuhan waktu transfer data yang cepat merupakan suatu masalah yang dihadapi dalam menyimpan dan mentransfer data. Data yang berukuran besar akan membutuhkan ruang penyimpanan yang besar, dan akan membutuhkan waktu yang lebih lama apabila ditransmisikan dalam jaringan komputer. Salah satu jenis file yang paling banyak membutuhkan proses kompresi adalah file citra. Kompresi merupakan salah satu cara yang dapat digunakan untuk memperkecil ukuran data, sehingga dapat membantu mengefisienkan penggunaan ruang media penyimpanan data dan mempercepat waktu transfer data.

(2)

ii Universitas Kristen Maranatha Kompresi dengan metoda ICA menghasilkan pengurangan jumlah bit dalam tiap piksel citra. Kualitas hasil dari kompresi cukup baik dilihat dari perbandingan citra kompresi dengan citra asli, terutama untuk citra natural yang memiliki matriks super-gaussian.

(3)

vii Universitas Kristen Maranatha

IMAGE COMPRESSION USING

INDEPENDENT COMPONENT ANALYSIS

Lucky Khoerniawan / 0222104

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia

Email : khoerniawan.lucky@yahoo.com

ABSTRAK

The size of data storage media is limited and the need for fast data transfer time is a problem faced in storing and transferring data. Large size of the data would require large storage space, and it takes longer when transmitted in a computer network. One of the most widely type of file requires a compression process is the image file. Compression is one way that can be used to reduce the size of data that can help streamline the use of space and speed up data storage media time data transfer.

Compression techniques and algorithms can be used for creating a duplicate of the original image file with different formats, but with a smaller size. To perform image compression methods that are available but can be used, one way of image compression is to use Independent Component Analysis (ICA). In compression using ICA, the matrix will be modified using the image of the

Matching Pursuit (MP) and the result is a matrix of non-gaussian. This underlying why ICA can be used for image compression.

(4)

viii Universitas Kristen Maranatha of the image compression ratio with the original image, especially for natural images with a matrix of super-gaussian.

(5)

viiii Universitas Kristen Maranatha

DAFTAR ISI

ABSTRAK………. i

ABSTRACT………... iii

KATA PENGANTAR………... v

DAFTAR ISI……….. vii

DAFTAR GAMBAR……….. ix

BAB I PENDAHULUAN I.1. Latar Belakang……… . 1

I.2. Identifikasi Masalah……….. 2

I.3 Tujuan………... 2

I.4 Pembatasan Masalah……….. 2

I.5 Sistimatika Laporan..………. 2

BAB II TEORI PENUNJANG II.1 Pengolahan Citra Digital... 4

II.1.1. KompresiCitra……… 6

II.2 Independent Component Analysis………. 8

II.2.1. Nongaussian……….. 12

II.2.2. Kurtosis………. 13

II .3. Algoritma FastICA……….. 14

II.4 Pemrograman Matlab... 16

II.4.1. Fungsi M-File………... 17

II.4.1.1. Aturan dan sifat M-file……….. 17

II.4.2. Sel Array dan Struktur………. 18

II.4.3. Struktur……… 20

II.4.4. Pengolahan Citra Menggunakan Matlab………. 20

(6)

viiiii Universitas Kristen Maranatha BAB III DIAGRAM ALIR KOMPRESI CITRA

III.1. Transform Coding Matching Pursuit………..…………..………… 25

III.2. Ekstraksi Fungsi Basis ICA……….………. 27

III.3. ICA Untuk Kompresi……….……….. 29

III.4. Kuantisasi………...……….. 30

III.5. Entropy Coding……….……….. 30

III.6. Dekompresi………. 31

BAB IV DATA DAN ANALISA IV.1. Pengujian……… 32

IV.2. Perangkat Lunak……… 32

IV.3. Perangkat Keras... 32

IV.4. Data Pengamatan dan Analisa……… 33

IV.4.1. Fungsi Basis ICA……….. 33

IV.4.2. Kompresi Citra……….. 34

IV.4.3. Perbandingan Incomplete, Complete, Over-complete…….. 35

IV.4.4. Pengaruh Kuantisasi Terhadap Kualitas Kompresi……….. 36

IV.4.5. Perbandingan Hasil Kompresi Dengan Citra Asli…………. 37

BAB V KESIMPULAN DAN SARAN V.1. Kesimpulan……… 40

V.2. Saran……….. 40

DAFTAR PUSTAKA……….. 41

(7)

ixii Universitas Kristen Maranatha

DAFTAR GAMBAR

Halaman

Gambar 2.1. Citra Digital………... 4

Gambar 2.2. Komposisi Warna RGB... 5

Gambar 2.3. Proses Konversi Citra Analog ke Citra Digital Beserta Pengirimannya... 7

Gambar 2.4. Proses Pencampuran Sinyal ICA... 9

Gambar 2.5. Diagram Blok ICA ………... 10

Gambar 2.6. Pengembangan ICA Dengan Komponen Bebas... 11

Gambar 3.1. Diagram Kompresi Secara Umum... 24

Gambar 3.2. Diagram Alir Algoritma Matching Pursuit………. 26

Gambar 3.3. Diagram Blok untuk Ekstraksi Fungsi Basis ICA……….. 28

Gambar 3.4. Diagram Blok Kompresi ICA……… 29

Gambar 4.1. Fungsi Basis Citra Natural……….………. 33

Gambar 4.2. Fungsi Basis Citra Wajah……… 33

Gambar 4.3. Fungsi Basis Citra Sidik Jari ………. 33

Gambar 4.4. Encoding Citra Lena ……….. 34

Gambar 4.5. ICA Incomplete, Complete, Over-complete……… 35

Gambar 4.6. Pengaruh Kuantisasi Terhadap Kualitas Kompresi………. 36

Gambar 4.7. Perbandingan Citra Asli Dengan Hasil Kompresi Citra Natural………. 37

Gambar 4.8. Perbandingan Citra Asli Dengan Hasil Kompresi Citra Wajah………. 38

(8)
(9)

function [A, W] = fpica(X, whiteningMatrix, dewhiteningMatrix, approach, ... numOfIC, g, finetune, a1, a2, myy, stabilization, ... epsilon, maxNumIterations, maxFinetune, initState, ... guess, sampleSize, displayMode, displayInterval, ... s_verbose);

%FPICA - Fixed point ICA. Algoritma utama FASTICA. %

% [A, W] = fpica(whitesig, whiteningMatrix, dewhiteningMatrix, approach, % numOfIC, g, finetune, a1, a2, mu, stabilization, epsilon,

% maxNumIterations, maxFinetune, initState, guess, sampleSize, % displayMode, displayInterval, verbose);

%

% Menampilkan independent component analysis menggunakan algoritma Hyvarinen's fixed point

%. Hasil adalah matriks A dan inversnya W. %

(10)

%

% Lihat juga FASTICA, FASTICAG, WHITENV, PCAMAT

% @(#)$Id: fpica.m,v 1.7 2005/06/16 12:52:55 jarmo Exp $

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Global variable untuk menghentikan perhitungan ICA dari GUI global g_FastICA_interrupt;

if isempty(g_FastICA_interrupt) clear global g_FastICA_interrupt; interruptible = 0;

else

interruptible = 1; end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Default values

if nargin < 3, error('Not enough arguments!'); end [vectorSize, numSamples] = size(X);

if nargin < 20, s_verbose = 'on'; end if nargin < 19, displayInterval = 1; end if nargin < 18, displayMode = 'on'; end if nargin < 17, sampleSize = 1; end if nargin < 16, guess = 1; end if nargin < 15, initState = 'rand'; end if nargin < 14, maxFinetune = 100; end if nargin < 13, maxNumIterations = 1000; end if nargin < 12, epsilon = 0.0001; end

if nargin < 11, stabilization = 'on'; end if nargin < 10, myy = 1; end

if nargin < 9, a2 = 1; end if nargin < 8, a1 = 1; end

if nargin < 7, finetune = 'off'; end if nargin < 6, g = 'pow3'; end

if nargin < 5, numOfIC = vectorSize; end % vectorSize = Dim if nargin < 4, approach = 'defl'; end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Memeriksa data

if ~isreal(X)

(11)

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Memeriksa nilai verbose

switch lower(s_verbose) case 'on'

b_verbose = 1; case 'off' b_verbose = 0; otherwise

error(sprintf('Illegal value [ %s ] for parameter: ''verbose''\n', s_verbose)); end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Memeriksa pendeketan

switch lower(approach) case 'symm'

approachMode = 1; case 'defl'

approachMode = 2; otherwise

error(sprintf('Illegal value [ %s ] for parameter: ''approach''\n', approach)); end

if b_verbose, fprintf('Used approach [ %s ].\n', approach); end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Memeriksa nilai numOfIC

if vectorSize < numOfIC

error('Must have numOfIC <= Dimension!'); end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Memeriksa sampleSize if sampleSize > 1

sampleSize = 1; if b_verbose

fprintf('Warning: Setting ''sampleSize'' to 1.\n'); end

(12)

if (sampleSize * numSamples) < 1000 sampleSize = min(1000/numSamples, 1); if b_verbose

fprintf('Warning: Setting ''sampleSize'' to %0.3f (%d samples).\n', ... sampleSize, floor(sampleSize * numSamples));

end end end

if b_verbose

if b_verbose & (sampleSize < 1)

fprintf(‘Menggunakan %0.0f%% dari sample random step.\n',sampleSize*100);

end end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Memeriksa nilai nonlinearity.

switch lower(g)

(13)

case 'tanh'

finetuningEnabled = 0; otherwise

error(sprintf('Illegal value [ %s ] for parameter: ''finetune''\n', ... finetune));

end

if b_verbose & finetuningEnabled

fprintf('Finetuning enabled (nonlinearity: [ %s ]).\n', finetune); end

switch lower(stabilization) case 'on'

stabilizationEnabled = 1; case 'off'

error(sprintf('Illegal value [ %s ] for parameter: ''stabilization''\n', ... stabilization));

end

if b_verbose & stabilizationEnabled fprintf('Using stabilized algorithm.\n'); end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Parameter lainnya myyOrig = myy;

(14)

% Beberapa langkah untuk menkonvergen. failureLimit = 5;

usedNlinearity = gOrig; stroke = 0;

notFine = 1; long = 0;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Memeriksa nilai initial state.

switch lower(initState) case 'rand'

initialStateMode = 0; case 'guess'

if size(guess,1) ~= size(whiteningMatrix,2) initialStateMode = 0;

if b_verbose

fprintf('Warning: ukuran initial state salah. Masukan initial secara random.\n'); end

else

initialStateMode = 1; if size(guess,2) < numOfIC if b_verbose

fprintf('Warning: Initial state hanya %d komponen. Menggunakan initial random yang lain.\n', size(guess,2));

end

guess(:, size(guess, 2) + 1:numOfIC) = ...

rand(vectorSize,numOfIC-size(guess,2))-.5; elseif size(guess,2)>numOfIC

guess=guess(:,1:numOfIC);

fprintf('Warning: Initial state terlalu besar. Colom dibuang.\n'); end

if b_verbose, fprintf(‘Mengunakan initial state.\n'); end end

otherwise

error(sprintf('Illegal value [ %s ] untuk parameter: ''initState''\n', initState)); end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

(15)

switch lower(displayMode) case {'off', 'none'}

usedDisplay = 0; case {'on', 'signals'} usedDisplay = 1;

if (b_verbose & (numSamples > 10000))

fprintf('Warning: Data vectors terlalu panjang. Plotting membutuhkan waktu yang lama.\n');

end

if (b_verbose & (numOfIC > 25))

fprintf('Warning: Terlalu banyak sinyal yang diplot. Plot akan terlihat jelek.\n'); end

case 'basis' usedDisplay = 2;

if (b_verbose & (numOfIC > 25))

fprintf('Warning: Terlalu banyak sinyal yang diplot. Plot akan terlihat jelek.\n'); end

case 'filters' usedDisplay = 3;

if (b_verbose & (vectorSize > 25))

fprintf('Warning: Terlalu banyak sinyal yang diplot. Plot akan terlihat jelek.\n'); end

otherwise

error(sprintf('Illegal value [ %s ] untuk parameter: ''displayMode''\n', displayMode)); end

% The displayInterval tidak boleh kurang dari 1... if displayInterval < 1

displayInterval = 1; end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if b_verbose, fprintf('Starting ICA calculation...\n'); end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% SYMMETRIC APPROACH if approachMode == 1,

% set beberapa parameter yang lain... usedNlinearity = gOrig;

(16)

A = zeros(vectorSize, numOfIC); % Dewhitened basis vectors. if initialStateMode == 0

% ambil orthonormal initial vectors secara random. B = orth (randn (vectorSize, numOfIC));

elseif initialStateMode == 1

% Gunakan initial vector sebagai initial state B = whiteningMatrix * guess;

% actual fixed-point iteration loop. for round = 1:maxNumIterations + 1, if round == maxNumIterations + 1,

fprintf('No convergence after %d steps\n', maxNumIterations); fprintf(Plot kemungkinan salah.\n');

if ~isempty(B)

% Symmetric orthogonalization. B = B * real(inv(B' * B)^(1/2));

W = B' * whiteningMatrix; A = dewhiteningMatrix * B; else

if (interruptible & g_FastICA_interrupt) if b_verbose

fprintf('\n\nCalculation interrupted by the user\n'); end

if ~isempty(B)

(17)

% Symmetric orthogonalization.

if b_verbose, fprintf('Initial convergence, fine-tuning: \n'); end; notFine = 0;

elseif stabilizationEnabled

if (~stroke) & (1 - minAbsCos2 < epsilon) if b_verbose, fprintf('Stroke!\n'); end; stroke = myy;

myy = .5*myy;

if mod(usedNlinearity,2) == 0

usedNlinearity = usedNlinearity + 1; end

elseif stroke myy = stroke; stroke = 0;

if (myy == 1) & (mod(usedNlinearity,2) ~= 0) usedNlinearity = usedNlinearity - 1;

end

elseif (~long) & (round>maxNumIterations/2)

if b_verbose, fprintf('Taking long (reducing step size)\n'); end; long = 1;

myy = .5*myy;

if mod(usedNlinearity,2) == 0

usedNlinearity = usedNlinearity + 1; end

(18)

% There was and may still be other displaymodes... % 1D signals

(19)

B = (X * (( X' * B) .^ 3)) / numSamples - 3 * B;

Xsub=X(:, getSamples(numSamples, sampleSize)); B = (Xsub * (( Xsub' * B) .^ 3)) / size(Xsub,2) - 3 * B; case 13

% Optimoitu

Ysub=X(:, getSamples(numSamples, sampleSize))' * B; Gpow3 = Ysub .^ 3;

(20)

case 30

ones(size(B,1),1) * sum(dGauss)... .* B / numSamples ;

Xsub=X(:, getSamples(numSamples, sampleSize)); U = Xsub' * B;

(21)

case 42

Xsub=X(:, getSamples(numSamples, sampleSize)); B = (Xsub * ((Xsub' * B) .^ 2)) / size(Xsub,2);

error('Code for desired nonlinearity not found!'); end

switch usedDisplay case 1

(22)

% Ambil intial sembarang kemudian ortogonalkan % dengan mengikuti aturan

if initialStateMode == 0 w = randn (vectorSize, 1); elseif initialStateMode == 1

w=whiteningMatrix*guess(:,round); end

if (interruptible & g_FastICA_interrupt) if b_verbose

fprintf('\n\nCalculation interrupted by the user\n'); end

(23)

fprintf('\nComponent number %d did not converge in %d iterations.\n', round, maxNumIterations);

end

round = round - 1;

numFailures = numFailures + 1; if numFailures > failureLimit if b_verbose

fprintf('Too many failures to converge (%d). Giving up.\n', numFailures); end

% numFailures > failurelimit break;

end

% i == maxNumIterations + 1 else

% if notFine

if i >= endFinetuning

(24)

usedNlinearity = gFine; myy = myyK * myyOrig;

endFinetuning = maxFinetune + i;

(25)

end

%if finetuningEnabled & notFine elseif stabilizationEnabled

if (~stroke) & (norm(w - wOld2) < epsilon | norm(w + wOld2) < ... epsilon)

stroke = myy;

if b_verbose, fprintf('Stroke!'); end; myy = .5*myy;

if mod(usedNlinearity,2) == 0

usedNlinearity = usedNlinearity + 1;

elseif (notFine) & (~long) & (i > maxNumIterations / 2) if b_verbose, fprintf('Taking long (reducing step size) '); end; long = 1;

myy = .5*myy;

if mod(usedNlinearity,2) == 0

(26)

% tanh

(27)

Xsub=X(:,getSamples(numSamples, sampleSize));

error('Code for desired nonlinearity not found!'); end

if b_verbose, fprintf('Done.\n'); end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Plot

if (usedDisplay > 0) & (rem(round-1, displayInterval) ~= 0) switch usedDisplay

case 1

% 1D signals temp = X'*B;

(28)

case 2

% ... and now there are :-) % 1D basis

icaplot('dispsig',A'); drawnow;

case 3

% ... and now there are :-) % 1D filters

icaplot('dispsig',W); drawnow;

otherwise end end end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%

% Cek data untuk security if ~isreal(A)

if b_verbose, fprintf('Warning: Memindahkan data A = real(A);

W = real(W); end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Subfunction

% Menghitung tanh linier lebih cepat dari pada Matlab tanh. function y=tanh(x)

y = 1 - 2 ./ (exp(2 * x) + 1);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

(29)

1 Universitas Kristen Maranatha BAB 1

PENDAHULUAN

I.1. Latar Belakang Masalah

Perkembangan pengiriman data saat ini telah mengalami kemajuan yang cukup pesat. Dengan hadirnya jaringan internet dan didukung penyedia jaringan (Internet Service Provider), maka pengiriman data dapat dilakukan tanpa mengenal batas jarak.

Akan tetapi pengiriman data memiliki kendala yaitu ukuran data yang akan dikirim terlalu besar. Data untuk citra adalah salah satu data yang memiliki ukuran yang besar. Sehingga memerlukan suatu cara agar dapat meminimalkan ukuran data. Teknik kompresi merupakan salah satu cara untuk memperkecil ukuran data.

Kompresi citra merupakan hal penting dalam terapan-terapan seperti transmisi data dan penyimpanan dalam basis data. Tujuannya adalah mengurangi kapasitas penyimpanan tanpa menghilangkan kualitas citra secara signifikan. dari kebanyakan citra adalah korelasi yang erat (highly correlated) antara satu piksel dengan piksel tetangganya. Kompresi dilakukan dengan pengalih ragaman data atau memproyeksikan citra terhadap pustaka fungsi basis kemudian melakukan thresholding.

Saat ini teknik kompresi citra telah banyak berkembang. Teknik kompresi citra untuk generasi selanjutnya lebih dioptimalkan agar kualitas hasil kompresi yang dihasilkan mendekati citra aslinya. Salah satu cara kompresi citra dengan tetap menjaga kualitas hasil agar mendekati aslinya adalah menggunakan Independent Component Analysis (ICA).

ICA adalah suatu metode penemuan kembali sekelompok sinyal bebas dari campuran sinyal-sinyal, yang proses pencampurannya tidak diketahui. ICA dapat dimodelkan sebagai vektor acak dari X yang didapat dari:

x = As

(30)

2 Universitas Kristen Maranatha Bila ukuran kolom baris M > N pada matriks A (over-complete), maka matriks s hanya memiliki sedikit komponen nilai yang signifikan. Fakta ini mendasari potensi kegunaan dari ICA untuk kompresi dan denoising citra. Kasus over-complete sering ditemukan pada citra natural. Sehingga ICA dapat mengkompresi citra natural menghasilkan kualitas citra yang baik.

Pada tugas akhir ini akan dibuat sebuah program kompresi data dengan menggunakan metoda Independent Component Analysis (ICA).

I.2. Identifikasi Masalah

Masalah dalam tugas akhir ini adalah:

 Bagaimana caranya metoda ICA dapat mengkompresi suatu data citra?

 Bagaimana hasil dari kompresi dari metoda ICA?

I.3. Tujuan

Tujuan tugas akhir ini adalah untuk membuat program yang dapat menggunakan algoritma ICA untuk kompresi data citra.

I.4. Pembatasan Masalah

Tugas akhir ini diberikan batasan sebagai berikut :

 Pembuatan program hanya untuk kompresi data citra.

 Program dibuat menggunakan MATLAB.

 Input citra memiliki format BMP dengan contoh citra natural (Lena), wajah, dan sidik

jari.

 Citra input diambil dari internet sesuai dengan referensi.

1.5. Sistematika Laporan

Agar dalam penulisan laporan Tugas Akhir ini lebih terarah dan teratur serta terstruktur maka akan dibagi dalam:

 Bab I : Pendahuluan

Dalam bab ini dibahas latar belakang, tujuan, identifikasi penelitian, pembatasan masalah serta sistematika laporan.

(31)

3 Universitas Kristen Maranatha Berisi teori-teori dasar yang mendukung laporan ini.

 Bab III : Kompresi Citra Menggunakan Independent Component Analysis

Bab ini membahas perancangan dan pembuatan program untuk kompresi citra dengan metoda Independent Component Analysis dengan menggunakan MATLAB sebagai bahasa pemrogramannya.

 Bab IV : Hasil Kompresi Citra

Bab ini membahas hasil dari kompresi citra dengan menggunakan program yang telah dirancang sebelumnya beserta analisis dan keterangan yang mendukung hasil pemrograman.

 Bab V : Kesimpulan dan Saran

(32)

40 Universitas Kristen Maranatha BAB V

KESIMPULAN DAN SARAN

V.1. Kesimpulan

Dari analisa yang telah dilakukan maka dapat diambil kesimpulan:

 Hasil kompresi ICA adalah pengurangan jumlah bit dalam tiap piksel citra input, dengan format input citra BMP yang memiliki 8 bit dalam tiap piksel.

 Kualitas hasil kompresi pada citra natural yang memiliki dictionary overcomplete

lebih baik daripada citra wajah atau sidik jari.

 Karena sifat non-ortogonal overcomplete, proses kuantisasi dilakukan sebelum transformasi agar menampilkan hasil yang lebih baik.

V.2. Saran

 Citra untuk training yang digunakan untuk mendapatkan fungsi basis ICA, lebih

bervariasi dan lebih banyak.

 Untuk pengembangan lebih lanjut, ICA dilakukan pada citra yang memiliki dictionary incomple dan complete.

(33)

41 Universitas Kristen Maranatha

DAFTAR PUSTAKA

[1] Oja,E., & Hyvarian, A. Independent Component Analysis : Algorithm and Application. 2000. Neural Networks Research Centre, Helsinki University of Technology. 14 juli 2009.

< http://www.cs.helsinki.fiua/hyvaeinpapers/NN00new.pdf>.

[2] James V.Stone., Independent Component Analysis A tutorial Introduction. 19 November 2009.

[3] James V.Stone., Independent Component Analysis: an introduction”, TRENDS in Cognitive Sciences Vol. 6 No. 2 February 2002.

[4] A. Hyvrinen, R. Cristescu, and E. Oja, “A fast algorithm for estimating overcomplete ica bases for image windows," in Int. Joint Conf. on Neural Networks, pp. 894{899, (Washington, D.C.), 1999.

[5] A. J. Ferreira and M. A. T. Figueiredo, “Class-adapted image compression using independent component analysis," in International Conference on Image Processing (ICIP) Barcelona, Spain (September 2003)., 1,pp. 625{8, Sept. 2003.

[6] A. J. Ferreira and M. A. T. Figueiredo, “On the use of independent component analysis for image compression," Signal Processing: Image Communication 21(5), pp. 378{389, 2006.

[7] P. Comon, “Independent component analysis, a new concept?," Signal Processing 36(3), pp. 287{314, 1994.

[8] http://nhielma.wordpress.com/2008/11/25/teori-dasar-pengolahan-citra/

[9] http://digilib.petra.ac.id/jiunkpe/s1/elkt/2005/jiunkpe-ns-s1-2005-23401056-8661-independent-chapter2.pdf

Referensi

Dokumen terkait

Sehubungan dengan hal tersebut kami mohon ijin dan bantuan bagi mahasiswa yang bersangkutan agar dapat melakukan penyebaran angket di tempat yang Bapak pimpin.

Merupakan suatu parameter yang menggambarkan suatu kondisi yang menunjukkan jumlah total paket yang hilang, dapat terjadi karena collision dan congestion pada

Asap cair kasar (mutu III) ditampung terlebih dahulu di dalam drum selama 5 sampai 7 hari untuk mengendapkan tar. Pengendapan dilakukan untuk memisahkan fraksi

Karya ilmiah ini harus dilaksanakan oleh dosen IKIP Padang dalam rangka meningkatkan mutu, baik sebagai dosen maupun sebagai peneli ti.. Oleh karena itu, Pusat

Simpulan penelitian ini adalah penerapan model Numbered Heads Together berbantuan media gambar dapat meningkatkan hasil belajar matematika.. Peneliti menyampaikan beberapa

Endang Malihatun, Upaya Meningkatkan Hasil Prestasi Belajar Pada Mata Pelajaran Akidah Akhlak Materi Akhlak Terpuji Dengan Media Komik (Studi Tindakan Kelas 5 MI

Tujuan dari penelitian ini adalah mendapatkan karakteristik data volume pemakaian air PDAM Kota Surabaya, mendapatkan model peramalan terbaik dari data volume

Ruh bersifat substansi ( jauhar ) yang hanya dimiliki manusia, sedang nyawa merupakan sesuatu yang baru ( ‘aradh ) yang juga dimiliki hewan. Jisim manusia memiliki