资源简介
基于统计算法的红外图像非均匀性矫正算法,场景类算法,实现实时校正
代码片段和文件信息
% function [ResultB1C1]=ICSA(I)%I 是图像序列
function Result=ICSA(I)
%初始化
[mnl]=size(I);
% h=[0 0.25 0;0.25 0 0.25;0 0.25 0];
% horizontal correction
b1=ones(m1);
c1=zeros(m1);
b=ones(ml);
c=zeros(ml);
B=ones(mn);
C=zeros(mn);
B1=ones(m10);
C1=zeros(m10);
% for k=1:l
% D=double(I(::k));
% I1=D.*B+C;
% m1(:k)=mean(I12);
% if k>1
% m1(:k)=(m1(:k-1)+m1(:k))/2;% here lamda=0.5
% end
% m2=(m1(1:m-2k)+m1(3:mk))/2;
% nm1=[m1(1k)/2+m2(1)/2;m2;m1(mk)/2+m2(m-2)/2];
% d1(:k)=std(I102);
% % 如果某行的d1太小,要替换,以免误差增大。
% if find(d1(:k)<5)
% num=find(d1(:k)<5);
% d1(numk)=5;
% end
%
% if k>1
% d1(:k)=(d1(:k-1)+d1(:k))/2;% here lamda=0.5
% end
% d2=(d1(1:m-2k)+d1(3:mk))/2;
% nd1=[d1(1k)/2+d2(1)/2;d2;d1(mk)/2+d2(m-2)/2];
% b(:k)=nd1./d1(:k);
% c(:k)=nm1-m1(:k).*nd1./d1(:k);
% % 如果增益过大,要限制,防止误差传递
% if find(b(:k)>2);
% num=find(b(:k)>2);
% b(numk)=1;
% c(numk)=0;
% end
% b1=b1.*b(:k);%系数逐帧改变
% c1=c1.*b(:k)+c(:k);
% B1(:k)=b1;
% C1(:k)=c1;
%
% B=repmat(b1[1n]);
% C=repmat(c1[1n]);
% R=D.*B+C;
%
% Result(::k)=uint8(R);%
% if mod(k100)==0
% k
% end
%
% end
%vertical correction
b3=ones(1n);
c3=zeros(1n);
b=ones(ln);
c=zeros(ln);
B=ones(mn);
C=zeros(mn);
for k=1:l
D=double(I(::k));
I1=D.*B+C;
m3(k:)=mean(I1);%接上面的步骤
if k>1
m3(k:)=(m3(k-1:)+m3(k:))/2;% here lamda=0.5
end
m4=(m3(k1:n-2)+m3(k3:n))/2;
nm3=[m3(k1)/2+m4(1)/2m4m3(kn)/2+m4(n-2)/2];
d3(k:)=std(I1);
% 如果某列的d1太小,要替换,以免误差增大。
if find(d3(k:)<5)
j=find(d3(k:)<5);
d3(kj)=5;
end
if k>1
d3(k:)=(d3(k-1:)+d3(k:))/2;% here lamda=0.5
end
d4=(d3(k1:n-2)+d3(k3:n))/2;
nd3=[d3(k1)/2+d4(1)/2d4d3(kn)/2+d4(n-2)/2];
b(k:)=nd3./d3(k:);
c(k:)=nm3-m3(k:).*nd3./d3(k:);
% 如果增益过大,要限制,防止误差传递
if find(b(k:)>2);
num=find(b(k:)>2);
b(knum)=1;
c(knum)=0;
end
b3=b3.*b(k:);%系数逐帧改变
c3=c3.*b(k:)+c(k:);
B=repmat(b3[m1]);
C=repmat(c3[m1]);
R=D.*B+C;
Result(::k)=uint8(R);
% if mod(k160)==0
% k
% B1=B;
% C1=C;
% end
end
%Result=uint8(R);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2270 2012-03-13 13:42 ICSA.m
- 上一篇:BP神经网络的算法实现分类功能
- 下一篇:遗传算法和神经网络预测股票
评论
共有 条评论