📄 ca1.m
字号:
%从压缩的码中重构图象过程(3)
function g=CA1(Ag,z)
[m,n]=size(Ag);
Ag=double(Ag);
Ang=mean2(Ag); %Ang为整图平均值
Ang1=(Ag <= Ang); %Ang1为左侧平均值
Ang1=double(Ang1);
p=sum(Ang1(:));
Ang1=Ang1.*Ag;%重新根据Ag计算左右两侧平均值
Ang1=sum(Ang1(:))/p;
Ang2=(Ag >= Ang); %Ang2为右侧平均值
Ang2=double(Ang2);
q=sum(Ang2(:));
Ang2=Ang2.*Ag;
Ang2=sum(Ang2(:))/q;
Ar1=zeros(m,n);
Ab1=zeros(m,n);
for i3=1:16
for j3=1:16
for l=1:32
for k=1:32
pr1=z(i3,j3,1);pr2=z(i3,j3,2);pr3=z(i3,j3,3);pb1=z(i3,j3,4);pb2=z(i3,j3,5);pb3=z(i3,j3,6);
if Ang1 >= Ag((i3-1)*32+l,(j3-1)*32+k)
Ar1((i3-1)*32+l,(j3-1)*32+k)=Ag((i3-1)*32+l,(j3-1)*32+k)+pr1;
Ab1((i3-1)*32+l,(j3-1)*32+k)=Ag((i3-1)*32+l,(j3-1)*32+k)+pb1;
elseif Ag((i3-1)*32+l,(j3-1)*32+k) >= Ang2
Ar1((i3-1)*32+l,(j3-1)*32+k)=Ag((i3-1)*32+l,(j3-1)*32+k)+pr3;
Ab1((i3-1)*32+l,(j3-1)*32+k)=Ag((i3-1)*32+l,(j3-1)*32+k)+pb3;
else
Ar1((i3-1)*32+l,(j3-1)*32+k)=Ag((i3-1)*32+l,(j3-1)*32+k)+pr2;
Ab1((i3-1)*32+l,(j3-1)*32+k)=Ag((i3-1)*32+l,(j3-1)*32+k)+pb2;
end
end
end
end
end
Ar1=mat2gray(Ar1);
Ag=mat2gray(Ag);
Ab1=mat2gray(Ab1);
g=cat(3,Ar1,Ag,Ab1);
imshow(g);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -