📄 lawstexture.m
字号:
function LawsTexture()
clc; % katharismos parathyrou entolwn
%Orismos dianysmatwn
L5=[1,4,6,4,1];
E5=[-1,-2,0,2,1];
S5=[-1,0,2,0,-1];
R5=[1,-4,6,-4,1];
%Ypologismos ginomewn
L5E5=L5'*E5;
E5L5=E5'*L5;
L5R5=L5'*R5;
R5L5=R5'*L5;
E5S5=E5'*S5;
S5E5=S5'*E5;
S5S5=S5'*S5;
R5R5=R5'*R5;
L5S5=L5'*S5;
S5L5=S5'*L5;
E5E5=E5'*E5;
E5R5=E5'*R5;
R5E5=R5'*E5;
S5R5=S5'*R5;
R5S5=R5'*S5;
Image=imread('wave.gif'); % fwrtosh eikonas
subplot(4,4,1);
imshow(Image); % epideiksh eikonas
d=5; % Platos parathyrou
X=preprocess(Image, d);
for kernel = 1:15
disp(kernel); % Ektypwsh sto parathyro entolwn
switch kernel
%Dhmiourgia tou fk me xrhsh ths sunelikshs(X einai h eikona)
case 1
fk = conv2(double(X),double(L5E5));
case 2
fk = conv2(double(X),double(E5L5));
case 3
fk = conv2(double(X),double(L5R5));
case 4
fk = conv2(double(X),double(R5L5));
case 5
fk = conv2(double(X),double(S5S5));
case 6
fk = conv2(double(X),double(R5R5));
case 7
fk = conv2(double(X),double(L5S5));
case 8
fk = conv2(double(X),double(S5L5));
case 9
fk = conv2(double(X),double(E5E5));
case 10
fk = conv2(double(X),double(E5R5));
case 11
fk = conv2(double(X),double(R5E5));
case 12
fk = conv2(double(X),double(S5R5));
case 13
fk = conv2(double(X),double(R5S5));
case 14
fk = conv2(double(X),double(E5S5));
case 15
fk = conv2(double(X),double(S5E5));
end
% Ypologismos twn xartwn energeias akmwn.
% m,n einai oi diastaseis tou fk
[m n] = size(fk);
energyMap = Ek(fk, m, n);
subplot(4, 4, kernel + 1);
imshow(energyMap, []);
end ;
return;
% Xrhsh tou fk gia upologismo tou xarth energeias akmwn
function ek=Ek(fk,m,n)
for i=8:m-7
for j=8:n-7
ek(i,j)=sum(sum(abs(fk(i-7:i+7,j-7:j+7))));
end
end
function prepimg=preprocess(Image,d)
[m n]=size(Image);
prepimg=double(Image);
for j=1:d:m
if j+d-1>m
break;
end
for i=1:d:n
if i+d-1>n
break;
end
prepimg(j:j+d-1,i:i+d-1)=prepimg(j:j+d-1,i:i+d-1)- mean(mean(prepimg(j:j+d-1,i:i+d-1)));
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -