-
大小: 1KB文件類型: .zip金幣: 1下載: 0 次發(fā)布日期: 2021-04-19
- 語(yǔ)言: Matlab
- 標(biāo)簽: 非均勻??紅外圖像??實(shí)時(shí)校正??統(tǒng)計(jì)算法??
資源簡(jiǎn)介
基于統(tǒng)計(jì)算法的紅外圖像非均勻性矯正算法,場(chǎng)景類算法,實(shí)現(xiàn)實(shí)時(shí)校正
代碼片段和文件信息
%?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);
%??%?如果增益過(guò)大,要限制,防止誤差傳遞
%?if?find(b(:k)>2);
%?????num=find(b(:k)>2);
%?????b(numk)=1;
%?????c(numk)=0;
%?end
%????b1=b1.*b(:k);%系數(shù)逐幀改變
%????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:);
%?如果增益過(guò)大,要限制,防止誤差傳遞
??if?find(b(k:)>2);
????num=find(b(k:)>2);
????b(knum)=1;
????c(knum)=0;
end
b3=b3.*b(k:);%系數(shù)逐幀改變
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);
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????2270??2012-03-13?13:42??ICSA.m
評(píng)論
共有 條評(píng)論