📄 expand_quad.m
字号:
function out = expand_quad(in, sComp, class)
if lower(class(1)) == 'f'
[rows, cols] = size(in);
[mR, mC] = ndgrid(1:rows, 1:cols);
mB = mR > ceil(tan(pi/3)*mC);
in(mB) = 0;
in = in(end:-1:1,:);
inFirst = zeros(2*size(in));
inFirst(1:rows, cols+1:end) = in;
out = inFirst;
vGreen = green_fun_vector(class);
for ind = 1:5
imRot = imrotate(inFirst, 60*ind, 'nearest', 'crop')*vGreen(ind+1);
mB = imRot ~= 0;
out(mB) = imRot(mB);
end
out = conv2(out, ones(3), 'same');
return
end
in = in(end:-1:1,:);
flip_h = in(end:-1:1,:);
flip_v = in(:,end:-1:1);
flip_hv = in(end:-1:1,end:-1:1);
e1 = [1 1 1 1];
e2 = [1 -1 1 -1];
e3 = [1 -1 -1 1];
e4 = [1 1 -1 -1];
switch class
case {'p1', 'p5'}
switch lower(sComp)
case {'ez'}
sgn = e1;
case {'hz'}
sgn = e2;
case {'ex', 'hy'}
sgn = e3;
case {'ey', 'hx'}
sgn = e4;
end
case {'p2', 'p6'}
switch lower(sComp)
case {'ez'}
sgn = e2;
case {'hz'}
sgn = e1;
case {'ex', 'hy'}
sgn = e4;
case {'ey', 'hx'}
sgn = e3;
end
case {'p4', 'p8'}
switch lower(sComp)
case {'ez'}
sgn = e4;
case {'hz'}
sgn = e3;
case {'ex', 'hy'}
sgn = e2;
case {'ey', 'hx'}
sgn = e1;
end
case {'p3', 'p7'}
switch lower(sComp)
case {'ez'}
sgn = e3;
case {'hz'}
sgn = e4;
case {'ex', 'hy'}
sgn = e1;
case {'ey', 'hx'}
sgn = e2;
end
end
out = [sgn(2)*flip_v sgn(1)*in; sgn(3)*flip_hv sgn(4)*flip_h];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -