Transformasi Walsh, Hadamard, Wavelet Fix
Transformasi Walsh, Hadamard, Wavelet Fix
Transformasi Walsh, Hadamard, Wavelet Fix
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:
= -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)
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)
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
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
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:
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).
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
Transformasi Wavelet