✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
随着人们生活压力的加重,生活环境的不断恶化,癌症疾病的发生率越来越高。近年来,脑肿瘤的发病率呈逐年上升的趋势,严重的危害人们的健康和生命,因此对于脑肿瘤预防和治疗的相关研究具有重要的责任和深远的意义。针对脑肿瘤图像的精确分割及自动检测问题,本文在SOM神经网络的基础上进行了深入研究。下面阐述本文的主要研究内容及创新点: 1.鉴于患者的脑部医学图像结构层次复杂度高,从一系列图像中抽取肿瘤图像过程难度较大,为了帮助医师筛选肿瘤图像,本文提出了结合最佳码本比较的脑肿瘤图像检测算法。首先对脑部图像进行头骨分离及背景消除,并利用直方图均衡技术增强图像;提取优化后样本图像的特征;设计多层感知神经网络分类器进行训练、分类;最后通过测试样本与正常脑部图像最佳码本比较,结合分类结果,成功检测出脑部肿瘤图像。通过与其他主流算法准确率比较,本文提出的脑肿瘤检测算法有了一定提高,为医师对于脑肿瘤治疗,提供了一种良好的脑肿瘤图像检测技术。
⛄ 部分代码
% im - input samples
map=8; % map size
%[p1,p]=size(im)
mw=rand(map,map,1) % initialize map;
[m,n]=size(im);
wx=0;
wy=0;
sigma=0.0;
update_lrate=0.99;
update_radius=map/3;
radius_decay=0.999;
i=1;
for t=1:10000 % iteration
if( i > n) % finding winner neurons
i=1;
end
[win,wx,wy]=winner(mw,im(i));
ny=0;nx=0;
dy=0;dx=0;
dis=0;gain=0.0;
x1=wx-2;
x2=wx+2;
if (x1 < 1)
x1=1;
end
if ( x2 > map)
x2=map;
end
y1=wy-2;
y2=wy+2;
if ( y1 <1)
y1=1;
end
if (y2 > map)
y2=map;
end
for y=y1:y2
dy=y-wy;
ny=rem((y+map),map);
for x=x1:x2
dx=x-wx;
%nx=rem((x+map),map);
dis=sqrt(dx^2 +dy^2);
gain=update_lrate * exp(-dis/(2 * update_radius));
for a=1:m
mw(x,y,a)=mw(x,y,a)+gain *(mw(wx,wy,a)-mw(x,y,a));
end
end
end
update_lrate=0.999/(0.999+(0.01*t));
update_radius=1.0+(update_radius-1.0)*radius_decay;
i=i+1;
end
smap=mw;
⛄ 运行结果
⛄ 参考文献
[1]申亮亮. 基于SOM神经网络的脑肿瘤检测分割算法研究[D]. 桂林电子科技大学.