1 简介
植物胚性细胞定量分析研究需要首先将其切片图像分割处理,然后进行大分子量化分析.但植物细胞切片图像上表现出来的植物细胞特有的复杂属性,使得一般图像分割分析方法很难奏效.20世纪90年代中期发展起来的脉冲耦合神经网络PCNN直接来自于动物视觉特性研究,应当适合这类植物细胞图像的分割处理.但因目前理论很难解释PCNN数学模型参数与图像分割效果之间的关系,一般较好图像分割效果的获得需多次实验选择这些模型参数.同时在模型参数选定的情况下,其循环迭代次数直接关系到分割结果的好坏,而分割好坏的判定需人眼观察分析,这样便引入了人为干预为此提出一种建立在分割图像熵值最大原则上的PCNN植物细胞图像自动分割新算法.
2 部分代码
%主程序clcclear allclose all%%%全局变量%global w h c threshold Y%w为图像宽度,h为图像高度,alpha=0.1;beta=0.1;%%%读取并显示图像image=imread('red_blood2.bmp');figureimshow(image);title('原始无噪声图像')disp('显示原始图像。。。')X=double(image);[w,h]=size(X);%%%屏蔽噪声,测试分割部分% %添加噪声并显示% X=double(imnoise(image,'salt & pepper',0.02));% [w,h]=size(X);% figure% imshow(X/255)% title('添加了椒盐噪声的图像')% disp('显示加噪声图像。。。')% %%% %去除salt噪声% X=denoise_gj(X,2);% figure,imshow(X/255);% title('去除salt噪声后的结果')% disp('去除salt噪声。。。')%% %去除pepper噪声% X=255-X;% X=denoise_gj(X,2);% X=255-X;% figure,imshow(X/255)% title('去除pepper噪声后的结果')% disp('去除pepper噪声结束。')%%%下面为求取最小交叉熵过程,最终求取一个PCNN的迭代次数ndisp('求取最小交叉熵过程')H=zeros(1,256);for i=1:w for j=1:h a=X(i,j); H(a+1)=H(a+1)+1/256; endendD=zeros(1,15);%下面为二值分割过程disp('二值分割过程')threshold=zeros(w,h);threshold(:)=255;Y=zeros(w+1,h+1);Weight=[0.707 1 0.707;1 0 1;0.707 1 0.707];while(n>0) for i=2:w for j=2:h %基于简化的PCNN模型 F=X(i,j); V=[ Y(i-1,j-1) Y(i-1,j) Y(i-1,j+1); Y(i,j-1) Y(i,j) Y(i,j+1); Y(i+1,j-1) Y(i+1,j) Y(i+1,j+1)]; L=(sum(V.*Weight)); U=double(F)*(1+beta*L); if U>threshold(i,j) Y(i,j)=1; else Y(i,j)=0; end threshold(i,j)=exp(-alpha)*threshold(i,j); end end n=n-1;endfigure,imshow(Y)title('输出二值分割图像');%%%下面为PCNN自动波特征消除细胞周围噪声、干扰的程序段disp('PCNN自动波特征消除细胞周围噪声、干扰')I=Y;[p,q]=size(I);figure,imshow(1-Y)title('PCNN自动波正向传播后图像')%%%下面为细胞计数及特定细胞提取过程disp('细胞计数')figure[L,N]=bwlabel(Y,8);disp(['共有',num2str(N),'个细胞。']);for i=1:N [r,c]=find(L==i); cell=bwselect(Y,c,r,8); subplot(6,6,i) imshow(cell); title(['第',num2str(i),'个细胞']) if i==36 break; enden
3 仿真结果
4 参考文献
[1]马义德, 李廉, 戴若兰,等. 一种基于脉冲耦合神经网络的植物胚性细胞图像分割[J]. 科学通报, 2001.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
5 代码下载