Anda di halaman 1dari 12

TRANSFORMASI WALSH

Transformasi Walsh merupakan transformasi yang bersifat non-sinusoidal


dimana fungsi basis transformasi ini hanya bernilai -1 dan 1. Kompleksitas
algoritma Tr. Walsh juga dapat diefisienkan menjadi N log2 N.
Transformasi Walsh Terbagi 2 yaitu:
1. Transformasi Walsh 1 Dimensi
2. Transformasi Walsh 2 Dimens
Transformasi Walsh 1 Dimensi
Rumus Tr. Walsh 1 dimensi:

Dengan u=0, 1, 2, .., N-1 dan x=0, 1, 2, .., N-1 sedangkan n mengikuti
aturan:
N=
Sebagai contoh, bila N = 8 maka n = 3.
(x) menyatakan bit ke-I dari representasi biner x. Sebagai contoh,bila x=4
dengan representasi biner 100, maka:
,

Demikian juga berlaku b1(u) dimana nilai bit-bitnya tergantung pada nilai u.
Rumus Tr. Walsh balik 1 dimensi:

Fungsi basis (kernel) dari transformasi Walsh diatas adalah:

Tabel dibawah menunjukkan fungsi basis (kernel) transformasi Walsh 1 dimensi


untuk N = 8 yang dihasilkan dari persamaan diatas.
Berikut ditunjukan cara untuk menghitung kernel tersebut untuk u = 1 dan x = 4.
Karena N = 8 maka n = 3.
Representasi biner dari u = 1 adalah 001, sedangkan representasi biner x = 4
adalah 100, maka:

Sehingga dapat dihitung:

= -1
Berikut adalah contoh untuk u = 4 dan x = 6
Representasi biner dari u =4 adalah 100, sedangkan representasi biner
x = 6 adalah 110, maka:

Sehingga:

=1
Berikut contoh pemanfaatan kernel pada tabel citra diatas:
f(x)

= (10 10 10 10 20 20 20 20). Transformasi Walsh dari citra f(x)

tersebut dapat dihitung dengan cara berikut.


W(u=0) = (10+10+10+10+20+20+20+20)/8 = 120/8 = 15
W(u=1) = (10+10+10+10-20-20-20-20)/8 = -40/8 = -5
W(u=2) = (10+10-10-10+20+20-20-20)/8 = 0/8 = 0
W(u=3) = (10+10-10-10-20-20+20+20)/8 = 0/8 = 0
W(u=4) = (10-10+10-10+20-20+20-20)/8 = 0/8 = 0
W(u=5) = (10-10+10-10-20+20-20+20)/8 = 0/8 = 0
W(u=6) = (10-10-10+10+20-20-20+20)/8 = 0/8 = 0
W(u=7) = (10-10-10+10-20+20+20-20)/8 = 0/8 = 0
Sehingga hasil transformasi Walsh untuk citra f(x) diatas adalah:
W(u) = (15 -5 0 0 0 0 0 0)
Transformasi Walsh 2 Dimensi
Rumus Tr. Walsh 2 dimensi:

W (u , v )
f ( x, y )

N 1 N 1

n 1

1
N

1
N

N 1 N 1

n 1

x 0 y 0

i 0

x 0 y 0

[ bi ( x ) bn1i ( u ) bi ( y ) bn1i ( v )

f ( x, y ) ( 1)
i 0

[ bi ( x ) bn1i ( u ) bi ( y ) bn1i ( v )

W (u , v) (1)

Fungsi basis dari transformasi Walsh 2 dimensi adalah:

Dengan nilai u dan x=0, 1, 2, .., N-1, sedangkan v dan y=0, 1, 2, .., N-1
Fungsi basis (kernel) transformasi Walsh 2 dimensi untuk citra berukuran 4x4
ditunjukan pada gambar berikut. Setiap blok pada gambar tersebut terdiri atas 4x4
pixel. Elemen setiap kernel hanya memiliki 2 nilai yaitu -1 dan 1.
Gambar dibawah menunjukkan suatu contoh citra berukuran 4x4 pixel. Pada citra
tersebut akan diterapkan transformasi Walsh 2 dimensi dengan fungsi basis yang
ditunjukan pada gambar diatas, dan perhitungan transformasi Walsh adalah seperti
berikut:
2
2
20
20

2
2
20
20

10
10
4
4

10
10
4
4

W(0,0) = (2+2+10+10+2+2+10+10+20+20+4+4+20+20+4+4)/4
= 144/4
= 36
W(0,1) = (2+2-10-10+2+2-10-10+20+20-4-4+20+20-4-4)/4
= 32/4
=8
W(0,2) = (2-2+10-10+2-2+10-10+20-20+4-4+20-20+4-4)/4
= 0/4
=0
W(0,3) = (2-2-10+10+2-2-10+10+20-20-4+4+20-20-4+4)/4
= 0/4
=0
W(1,0) = (2+2+10+10+2+2+10+10-20-20-4-4-20-20-4-4)/4
= -48/4
= -12
W(1,1) = (2+2-10-10+2+2-10-10-20-20+4+4-20-20+4+4)/4

= -96/4
= -24
W(1,2) = (2-2+10-10+2-2+10-10-20+20-4+4-20+20-4+4)/4
= 0/4
=0
W(1,3) = (2-2-10+10+2-2-10+10-20+20+4-4-20+20+4-4)/4
= 0/4
=0
W(2,0) = (2+2+10+10-2-2-10-10+20+20+4+4-20-20-4-4)/4
= 0/4
=0
W(2,1) = (2+2-10-10-2-2+10+10+20+20-4-4-20-20+4+4)/4
= 0/4
=0
W(2,2) = (2-2+10-10-2+2-10+10+20-20+4-4-20+20-4+4)/4
= 0/4
=0
W(2,3) = (2-2-10+10-2+2+10-10+20-20-4+4-20+20+4-4)/4
= 0/4
=0
W(3,0) = (2+2+10+10-2-2-10-10-20-20-4-4+20+20+4+4)/4
= 0/4
=0
W(3,1) = (2+2-10-10-2-2+10+10-20-20+4+4+20+20-4-4)/4
= 0/4
=0
W(3,2) = (2-2+10-10-2+2-10+10-20+20-4+4+20-20+4-4)/4
= 0/4
=0
W(3,3) = (2-2-10+10-2+2+10-10-20+20+4-4+20-20-4+4)/4
= 0/4
=0

Sehingga hasil transformasi Walsh adalah:


36
-12
0
0

8
-24
0
0

0
0
0
0

0
0
0
0

Transformasi Walsh balik (invers) dapat dilakukan dengan cara yang persis sama
dengan transformasi Walsh diatas. Berikut adalah perhitungan transformasi Walsh
balik untuk citra hasil transformasi diatas.
W(0,0) = (36+8+0+0+(-12)+(-24)+0+0+0+0+0+0+0+0+0+0)/4
= 8/4
=2
W(0,1) = (36+8-0-0+(-12)+(-24)-0-0+0+0-0-0+0+0-0-0)/4
= 8/4
=2
Hasil dari transformasi Walsh balik adalah:
2
2
20
20

2
2
20
20

10
10
4
4

10
10
4
4

Hasil tersebut persis sama dengan citra aslinya.

Transformasi Hadamard
Sama dengan transformasi Walsh, trasformasi Hadamard juga merupakan
transformasi yang bersifat non-sinusoidal. Fungsi basis transformasi ini hanya
bernilai -1 dan 1.
a. Trasformasi Hadamard 1 Dimensi
Trasformasi Hadamard 1 dimensi dari citra f(x) dapat dinyatakan
sebagai berikut.
Transformasi Hadamard balik adalah:

Fungsi basis dari transformasi Hadamard 1 dimensi adalah:

Gambar di bawah ini merupakan tabel yang menunjukan kernel atau


fungsi basis dari transformasi Hadamard 1 dimensi untuk N = 8

Gambar 1.1 Nilai Kernel Transformasi Hadamard 1-D untuk N = 8

Berikut ditunjukkan cara untuk menghitung kernel tersebut untuk u = 1


dan x = 4. Karena N = 8 maka n = 3. Representasi biner dari u = 1 adalah 001,
sedangkan representasi biner x = 4 adalah 100, maka:

Sehingga dapat dihitung:

Berikut adalah contoh untuk u = 4 dan x = 6. Representasi biner dari u = 4


adalah 100, sedangkan representasi biner x = 6 adalah 110, maka:

Sehingga:

Berikut adalah contoh pemanfaatan kernel citra pada table diatas: f(x) =
(10 10 10 10 20 20 20 20). Transformasi Hadamard dari citra f(x) tersebut dapat
dihitung dengan cara berikut.

Sehingga hasil dari transformasi Hadamard untuk citra f(x) diatas adalah:
W(u) = (15 0 0 0 -5 0 0 0).

Gambar 1.2 Hasil fungsi transformasi Hadamard

Tabel 1.1 Coding Matlab untuk Hadamard Transform


clc;
clear all;
close all;
A=imread('cameraman.tif');

figure,imshow(uint8(A))
title('Original Image');
A=double(A);
[s1 s2]=size(A);
% bs=input('Enter the block sizes for division of the image: ');
% Block Size
bs=8;
% Hadamard
temp=double(zeros(size(A)));
for y=1:bs:s1-bs+1
for x=1:bs:s2-bs+1
croppedImage = A((y:y+bs-1),(x:x+bs-1));
t=getHadamardTransform(croppedImage,bs);
temp((y:y+bs-1),(x:x+bs-1))=t;
end
end
figure,imshow(uint8(temp))
% Inverse Hadamard
temp1=double(zeros(size(A)));
for y=1:bs:s1-bs+1
for x=1:bs:s2-bs+1
croppedImage = temp((y:y+bs-1),(x:x+bs-1));
t=getInvHadamardTransform(croppedImage,bs);
temp1((y:y+bs-1),(x:x+bs-1))=t;
end
end
figure,imshow(uint8(temp1))

(a)

(b)

(c)

Gambar 1.3 (a) Original Image, (b) Hadamard Transform Image, (c) Hadamard Inverse
Transform Image

Gambar 1.4 Nilai awal dari gambar dengan ukuran matriks 10*10

Gambar 1.5 Nilai dari transformasi Hadamard dengan ukuran matriks 10*10

Gambar 1.6 Nilai dari transformasi Hadamard Inverse gambar dengan ukuran matriks 10*10

Berdasarkan hasil percobaan transformasi Hadamard dan Hadamard


Inverse pada gambar diatas, dapat diketahui bahwa transformasi Hadamard
mengalami perubahan warna yang disebabkan oleh adanya bilangan imajiner
yang mempengaruhi setiap piksel pada gambar 1.3 (b) dan dapat dilihat
perubahan nilainya pada gambar 1.5 yang hanya memperlihatkan nilai piksel pada
matriks 10*10.

Setelah dilakukan inverse pada transformasi Hadamard (Hadamard


Inverse) didapatkan bahwa gambar hasil inverse (gambar 1.19 (c)) tidak memiliki
perbedaan yang signifikan terhadap gambar aslinya, serta nilai perubahan nilainya
dapat dilihat pada gambar 1.22.

Transformasi Wavelet

Anda mungkin juga menyukai