Diketahui :
·
R5E5
·
R5S5
·
E5S5
Dengan Program
menghubungkan Konvolusi2 dan Laws
Konvolusi2:
function [G] = konvolusi2(F, H)
%
KONVOLUSI2 Melakukan konvolusi kernel H dengan citra F
% (Versi Algoritma 4.3)
% H harus mempunyai tinggi dan lebar ganjil
% Hasil: citra G
[tinggi_f,
lebar_f] = size(F);
[tinggi_h,
lebar_h] = size(H);
m2 =
floor(tinggi_h/2);
n2 = floor(lebar_h/2);
F2=double(F);
for y=1
: tinggi_f
for x=1 : lebar_f
%
Pelaksanaan konvolusi F(baris, kolom)
jum = 0;
for
p=-m2 : m2
for
q=-n2 : n2
%
Penanganan x
x2 = x-q;
if x2 < 1
x2 = -x2 + 1;
else
if x2
> lebar_f
x2 = 2 * lebar_f - x2 +
1;
end
end
% Penanganan
y
y2 = y-p;
if y2
< 1
y2 = -y2 + 1;
else
if y2
> tinggi_f
y2 = 2 * tinggi_f - y2 +
1;
end
end
jum = jum + H(p+m2+1,q+m2+1) * ...
F2(y2, x2);
end
end
G(y, x) = jum;
end
end
Program Laws
function [E]
= laws(F, cadar1, cadar2, w)
% LAWS
Berguna untuk memperoleh citra yang berisi
% energi tekstur.
% Masukan: F = Citra berskala keabuan.
% cadar1 dan cadar2 = nama cadar
% (S3, S5, E3, dst.)
% w = ukuran jendela. F =
double(F);
%
Memperoleh energi tekstur. Hasil berupa
% citra berukuran sama dengan F.
% w = ukuran jendela
L3 = [1 2 1];
E3 = [-1 0 -1];
S3 = [-1 2 -1];
L5 = [1 4 6 4
1];
E5 = [-1 -2 0 2
1];
S5 = [-1 0 2 0
-1];
R5 = [1 -4 6 -4
1]; W5 = [-1 2 0 -2 1];
% Cek
cadar 1
if
strcmp(cadar1, 'L3') == 1
Cd1 = L3;
ukuran1 = 3;
elseif
strcmp(cadar1, 'E3') == 1
Cd1 = E3;
ukuran1 = 3;
elseif
strcmp(cadar1, 'S3') == 1
Cd1 = S3;
ukuran1 = 3;
elseif
strcmp(cadar1, 'L5') == 1
Cd1 = L5;
ukuran1 = 5;
elseif
strcmp(cadar1, 'E5') == 1
Cd1 = E5;
ukuran1 = 5;
elseif
strcmp(cadar1, 'S5') == 1
Cd1 = S5;
ukuran1 = 5;
elseif
strcmp(cadar1, 'R5') == 1
Cd1 = R5;
ukuran1 = 5;
elseif
strcmp(cadar1, 'W5') == 1
Cd1 = W5;
ukuran1 = 5;
else
ukuran1 = 0;
end
% Cek
cadar 2
if
strcmp(cadar2, 'L3') == 1
Cd2 = L3;
ukuran2 = 3;
elseif
strcmp(cadar2, 'E3') == 1
Cd2 = E3;
ukuran2 = 3;
elseif
strcmp(cadar2, 'S3') == 1
Cd2 = S3;
ukuran2 = 3;
elseif
strcmp(cadar2, 'L5') == 1
Cd2 = L5;
ukuran2 = 5;
elseif
strcmp(cadar2, 'E5') == 1
Cd2 = E5;
ukuran2 = 5;
elseif
strcmp(cadar2, 'S5') == 1
Cd2 = S5;
ukuran2 = 5;
elseif
strcmp(cadar2, 'R5') == 1
Cd2 = R5;
ukuran2 = 5;
elseif
strcmp(cadar2, 'W5') == 1
Cd2 = W5;
ukuran2 = 5;
else
ukuran2 = 0;
end
% Cek kebenaran
cadar
ukuran = ukuran1
* ukuran2;
if
~(ukuran == 9 || ukuran == 25)
error('Cadar
tidak valid');
end
Matriks = Cd1' *
Cd2;
%
Konvolusi citra dengan cadar
E =
konvolusi2(F, Matriks);
% Lakukan
pererataan dengan jendela berukuran w x w
H=ones(w,w)/(w^2);
E=konvolusi2(E,
H);
% Lakukan
normalisasi ke 0 s/d 255
terkecil =
min(min(E));
terbesar =
max(max(E));
E = (E-terkecil)
/ (terbesar - terkecil) * 255;
%
Kosongkan bagian tepi
[tinggi, lebar]
= size(E);
E(1:15,:) = 0;
E(tinggi-15:
tinggi,:) = 0;
E(:, 1:15) = 0;
E(:, lebar-15 :
lebar) = 0;
E = uint8(E);
==============================================
Running Program pada Command Window
absam =
imread('e:\materi\absam.png');
>> F = laws(absam,'R5','E5',15);
>> G =
laws(absam,'R5','S5',15);
>> H =
laws(absam,'E5','S5',15);
>>
figure(1); imshow(F);
>>
figure(2); imshow(G);
>>
figure(3); imshow(H);
==============================================sehingga Output dari program diatas adalah sebagai berikut :
Gambar soal :
OUTPUT :
Komentar
Posting Komentar