資源簡介
主要研究基于分數階偏微分方程的醫學圖像增強的算法。主要是在最為經典的Riemman-Liouville (R-L )積分算法基礎上,將該算法中值濾波和分數階積分相結合,利用自適應中值濾波算法中的噪聲判別條件來檢測噪聲點,然后用“噪聲邊緣”判別函數對其中的可疑噪聲點進行二次檢測,并根據圖像的局部統計信息和結構特征構造自適應的分數階階次,最后將檢測出的噪聲點用自適應的分數階積分掩模進行濾波去噪。
代碼片段和文件信息
clcclear?all;
N=100;?%最大迭代次數
lambda=5;?%尺度參數
dt=1;?%時間步長
f=imread(‘CT.bmp‘);
g=double(f);
figureimshow(f[]);xlabel(‘原圖像‘);
f=g+20*randn(size(f));
figureimshow(f[]);xlabel(‘含噪圖像‘);
[nynx]=size(f);?%按Nenmann邊界條件延拓
ff=zeros([ny+2nx+2]);
ff(2:ny+12:nx+1)=f;?%上下延拓
ff(12:nx+1)=f(1:);
ff(ny+22:nx+1)=f(ny:);?%左右延拓
ff(:1)=ff(:2);
ff(:nx+2)=ff(:nx+1);
mmax=50;
[mn]=size(f);
a=floor(mmax/2);
f1=zeros(m+2*an+2*a);
for?bb=1:a
????f1(bba+1:n+a)=f(mmax-bb:);
????f1(m+a+bba+1:n+a)=f(m+1-bb:);
????f1(a+1:n+abb)=f(:mmax-bb);
????f1(a+1:n+am+a+bb)=f(:n+1-bb);
end
f1(a+1:m+aa+1:n+a)=f;
f1(1:a1:a)=f(11);
f1(m+a+1:m+2*an+a+1:n+2*a)=f(mn);
f1(1:an+a+1:n+2*a)=f(1n);
f1(m+a+1:m+2*a1:a)=f(m1);
for?i=a+1:m+a
????for?j=1+a:n+a
????????xx=f1(i-a:i+aj-a:j+a);
????????xxmean(i-aj-a)=mean(xx(:));
????????o=(f1(i-a:i+aj-a:j+a)-xxmean(i-aj-a)).^2;
????????oo(i-aj-a)=sum(o(:));
????end
end
oomax=max(oo(:));
oomin=min(oo(:));?
v=(oo-oomin)./(oomax*10)+1;?%自適應階數
uu=ff;
ss2=0;
for?n=1:N
- 上一篇:基于Matlab的科學計算器設計
- 下一篇:MATLAB最鄰近插值算法的實現
評論
共有 條評論