資源簡介
利用自適應各向異性擴散的方法進行醫(yī)學圖像的處理,在各向異性的基礎(chǔ)上添加了自適應算法,使得梯度閾值K能根據(jù)不同區(qū)域的圖像特征有所不同。其中各向異性擴散算法是從網(wǎng)上找的但是我做了一些修改,自適應部分算法是我自己加的。

代碼片段和文件信息
%diff?=?anisodiff(im?niter?kappa?lambda?option)
%?????????im?????-?input?image
%?????????niter??-?number?of?iterations.迭代次數(shù)
%?????????kappa??-?conduction?coefficient?20-100??梯度幅值參數(shù)
%?????????lambda?-?max?value?of?.25?for?stability迭代系數(shù)
%?????????option?-?1?Perona?Malik?diffusion?equation?No?1
%??????????????????2?Perona?Malik?diffusion?equation?No?2
clear
I?=?imread(‘a(chǎn)a.jpg‘);
I=rgb2gray(I);
I=double(I);
subplot(221)imshow(I/255);title(‘原圖‘);
subplot(222)imhist(I/255);
%kappa自適應
sigmas=1:2:10;
sigmas?=?sort(sigmas?‘a(chǎn)scend‘);%從小到大排序
[nxny]=size(I);
S=zeros([nx?ny]);
for?i?=?1:length(sigmas)
?[DxxDxyDyy]?=?Hessian2D(Isigmas(i));
????Dxx?=?(sigmas(i)^2)*Dxx;
????Dxy?=?(sigmas(i)^2)*Dxy;
????Dyy?=?(sigmas(i)^2)*Dyy;
[Lambda2Lambda1~~]=eig2image(DxxDxyDyy);
S(::i)=sqrt(Lambda2.^2+Lambda1.^2);
end
K=max(S[]3);
kappa=1./K;
kappa=10*kappa;%加速因子
?out?=?anisodiff(I200kappa0.11);%其中kappa也可以直接賦值,就沒有自適應了
?%out=adapthisteq(out/255);
subplot(223)?imshow(out/255);title(‘自適應各向異性‘);
subplot(224)imhist(out/255);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????13319??2019-03-08?19:10??adapt_anisofiff\aa.jpg
?????文件???????1122??2019-04-04?23:03??adapt_anisofiff\adapt_anisodiff.m
?????文件???????2710??2019-04-03?11:03??adapt_anisofiff\anisodiff.m
?????文件???????1159??2011-03-28?21:16??adapt_anisofiff\eig2image.m
?????文件???????1026??2011-04-01?11:25??adapt_anisofiff\Hessian2D.m
?????目錄??????????0??2019-04-04?23:05??adapt_anisofiff
-----------?---------??----------?-----??----
????????????????19336????????????????????6
評論
共有 條評論