function [reimagery] = EnhancedShow(imagery1)
% 此函数用于实现ENVI中LINER2%的默认显示方法,使得图像的对比度增强
% 此处显示详细说明
[m,n]=size(imagery1);
% imagery2=zeros(m,n);
reimagery=zeros(m,n);
imagery2=imagery1+abs(min(min(imagery1)))+1;
TJ=zeros(1,max(max(imagery2)));
% 统计雷达辐射值分布直方图
for i=1:m
for j=1:n
TJ(1,imagery2(i,j))=TJ(1,imagery2(i,j))+1;
end
end
% 计算累计直方图百分比,计算截止(2%,98%)百分比对应的"辐射值"
[p,q]=size(TJ);
SUM=sum(sum(TJ));
Per=zeros(p,q);
Per2=zeros(p,q);
for j=2:q
Per(1,j)=TJ(1,j)+Per(1,j-1);
Per2(1,j)=Per(1,j)/SUM;
if Per2(1,j)>0.019&&Per2(1,j)<=0.02
J1=j;
elseif Per2(1,j)>0.97&&Per2(1,j)<=0.98
J2=j;
end
end
J1=J1-(abs(min(min(imagery1)))+1);
J2=J2-(abs(min(min(imagery1)))+1);
for i=1:m
for j=1:n
if imagery1(i,j)<=J1
imagery1(i,j)=J1;
elseif imagery1(i,j)>=J2
imagery1(i,j)=J2;
end
end
end
for i=1:m
for j=1:n
reimagery(i,j)=256*(log(imagery1(i,j))-log(J1))/(log(J2)-log(J1));
end
end
评论11