【图像分割】基于脉冲耦合神经网络实现细胞分割附matlab代码

简介: 【图像分割】基于脉冲耦合神经网络实现细胞分割附matlab代码

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 代码下载


相关文章
|
1天前
|
网络安全 数据安全/隐私保护 计算机视觉
2024蓝桥杯网络安全-图片隐写-缺失的数据(0基础也能学会-含代码解释)
2024蓝桥杯网络安全-图片隐写-缺失的数据(0基础也能学会-含代码解释)
|
1天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
1天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
1天前
|
算法 调度
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
|
1天前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
1天前
|
运维 算法
基于改进遗传算法的配电网故障定位(matlab代码)
基于改进遗传算法的配电网故障定位(matlab代码)
|
1天前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
1天前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
|
1天前
|
算法 调度
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)

热门文章

最新文章