資源簡(jiǎn)介
采用PCNN算法進(jìn)行邊緣檢測(cè)
代碼片段和文件信息
function?[EdgeNumberofaera]=pcnn(X)
%?功能:采用PCNN算法進(jìn)行邊緣檢測(cè)
%?輸入:X—輸入的灰度圖像
%?輸出:Edge—檢測(cè)到的???????Numberofaera—表明了在各次迭代時(shí)激活的塊區(qū)域
figure(1);
imshow(X);?
X=double(X);
%?設(shè)定權(quán)值
Weight=[0.07?0.1?0.07;0.1?0?0.1;0.07?0.1?0.07];?
WeightLI2=[-0.03?-0.03?-0.03;-0.03?0?-0.03;-0.03?-0.03?-0.03];
d=1/(1+sum(sum(WeightLI2)));
%%%%%%測(cè)試權(quán)值%%%%%%
WeightLI=[-0.03?-0.03?-0.03;-0.03?0.5?-0.03;-0.03?-0.03?-0.03];
d1=1/(sum(sum(WeightLI)));
%%%%%%%%%%%%%%%%%%
Beta=0.4;??
Yuzhi=245;
%衰減系數(shù)
Decay=0.3;???
[ab]=size(X);
V_T=0.2;
%門限值
Threshold=zeros(ab);??
S=zeros(a+2b+2);
Y=zeros(ab);
%點(diǎn)火頻率
Firate=zeros(ab);?
n=1;
%統(tǒng)計(jì)循環(huán)次數(shù)
count=0;?
Tempu1=zeros(ab);?
Tempu2=zeros(a+2b+2);?
%%%%%%圖像增強(qiáng)部分%%%%%%
Out=zeros(ab);
Out=uint8(Out);
for?i=1:a
for?j=1:b
?if(i==1|j==1|i==a|j==b)
??Out(ij)=X(ij);
?else??
??H=[X(i-1j-1)??X(i-1j)?X(i-1j+1);
?????X(ij-1)???X(ij)???X(ij+1);
????X(i+1j-1)?X(i+1j)?X(i+1j+1)];?
?temp=d1*sum(sum(H.*WeightLI));
?Out(ij)=temp;
?end
?end
end
figure(2);
imshow(Out);?
%%%%%%%%%%%%%%%%%%%
for?count=1:30?
?for?i0=2:a+1
????for?i1=2:b+1
?????????V=[S(i0-1i1-1)??S(i0-1i1)?S(i0-1i1+1);
?????????????S(i0i1-1)???S(i0i1)???S(i0i1+1);
?????????????S(i0+1i1-1)?S(i0+1i1)?S(i0+1i1+1)];
???????????L=sum(sum(V.*Weight));
???????????V2=[Tempu2(i0-1i1-1)??Tempu2(i0-1i1)?Tempu2(i0-1i1+1);
???????????????Tempu2(i0i1-1)???Tempu2(i0i1)???Tempu2(i0i1+1);
???????????????Tempu2(i0+1i1-1)?Tempu2(i0+1i1)?Tempu2(i0+1i1+1)];????????F=X(i0-1i1-1)+sum(sum(V2.*WeightLI2));
%保證側(cè)抑制圖像無能量損失
F=d*F;?
U=double(F)*(1+Beta*double(L));??????????????????????????
Tempu1(i0-1i1-1)=U;
????if?U>=Threshold(i0-1i1-1)|Threshold(i0-1i1-1)<60
??????T(i0-1i1-1)=1;
??????Threshold(i0-1i1-1)=Yuzhi;
???????%點(diǎn)火后一直置為
評(píng)論
共有 條評(píng)論