1 简介

1950s数字图像处理产生,从此学术界对它的研究连绵不绝。十多年之后,数字图像的处理被独立出来成了一门课程。图像分割技术是处理图像的一种基础技术,在图像处理领域中占了重要地位,且在图像工程、模式识别、计算机视觉等方面起着重要作用。本文正是以图像分割为研究课题,以如何能更好地图像进行省时而有效的分割为研究目的,提出了基于最大熵的脉冲耦合神经网络(PulseCoupled Neural Networks,简称PCNN)的方法。众所周知,有效的分割方法有利于理解图像的本质和后续的研究工作等,因此本文分割方法的研究是具有一定意义的。传统的处理图像的分割问题的方法有:基于灰度级算术均值法、基于熵与直方图法、基于最大类间方差法、基于边缘的检测分割法,基于阈值的分割法,基于边界提取的分割法,基于区域的分割法,基于特定理论的分割法。同时,当然少不了产生的一些相关模型,如健壮尺度区域模型,二维经典C-V模型,尺度区域拟合模型,三维C-V模型,健壮统计三维C-V模型,几何主动轮廓模型等。本文将出基于脉冲耦合神经网络的方法。此方法对上述分割数字图像时的不足具有一定的弥补作用。用PCNN方法分割数字图像的模型中,以神经元为单元,构成二维的一层的神经元列。PCNN模型中神经元的数目一致于像素数目,每个神经元一一对应于每个像素。根据PCNN的脉冲传播特性而引起的同步脉冲现象来实现图像分割。

2 部分代码

function J = My_RegionGrowing(I, init_pos, reg_maxdist)    [row, col] = size(I);               % 输入图像的维数     J = zeros(row, col);               % 输出    x0 = init_pos(1);                   % 初始点    y0 = init_pos(2);    reg_mean = I(x0, y0);       % 生长起始点灰度值    J(x0, y0) = 1;                    % 生长起始点设置为白色    reg_sum = reg_mean;                     % 符合生长条件的灰度值总和    reg_num = 1;                                  % 符合生长条件的点的个数    count = 1;                                       % 每次判断周围八个点中符合条件的数目    reg_choose = zeros(row*col, 2);      % 记录已选择点的坐标    reg_choose(reg_num, :) = init_pos;    num = 1;               % 第一个点       while count > 0        s_temp = 0;                  % 周围八个点中符合条件的点的灰度值总和        count = 0;        for k = 1 : num      % 对新增的每个点遍历,避免重复            i = reg_choose(reg_num - num + k, 1);            j = reg_choose(reg_num - num +k, 2);            if J(i, j) == 1 && i > 1 && i < row && j > 1 && j < col   % 已确定且不是边界上的点                % 八邻域                for u =  -1 : 1                          for v = -1 : 1                        % 未处理且满足生长条件的点                        if J(i + u, j + v) == 0 && abs(I(i + u, j + v) - reg_mean) <= reg_maxdist                            J(i + u, j + v) = 1;           % 对应点设置为白色                            count = count + 1;                            reg_choose(reg_num + count, :) = [i + u, j + v];                            s_temp = s_temp + I(i + u, j + v);   % 灰度值存入s_temp中                        end                    end                end            end        end        num = count;                                      % 新增的点        reg_num = reg_num + count;              % 区域内总点数        reg_sum = reg_sum + s_temp;            % 区域内总灰度值        reg_mean = reg_sum / reg_num;         % 区域灰度平均值    end

3 仿真结果

4 参考文献

[1]黄国峰. 基于脉冲耦合神经网络的图像分割算法研究[D]. 西安电子科技大学.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

5 代码下载

【图像分割】基于pcnn脉冲神经网络结合区域生长算法实现图像分割附matlab代码相关推荐

  1. 【路径规划-TSP问题】基于粒子群结合蚁群算法求解旅行商问题附matlab代码

    1 内容介绍 一种基于粒子群优化的蚁群算法求解TSP问题的方法.该方法在求解TSP问题时,利用粒子群优化的思想,对蚁群算法的参数取值进行优化并选择.在粒子群算法中,将蚁群算法的5个参数(q,α,β,ρ ...

  2. 基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码

    ⭕⭕ 目 录 ⭕⭕ ✳️ 一.引言 ✳️ 二.手写体数字识别系统 ✳️ 2.1 MNIST 数据集 ✳️ 2.2 CNN ✳️ 2.3 网络训练 ✳️ 三.手写体数字识别结果 ✳️ 四.参考文献 ✳️ ...

  3. 【图像去噪】基于自适应小波阙值算法实现图像去噪附matlab代码

    1 内容介绍 基于 Donoho经典小波阈值去除图像噪声基本思路,分析常用硬阈值法和软阈值法在图像去噪中的缺陷.针对这些缺陷,提出一种改进的阈值去噪法,该方法不仅可克服硬阈值不连续的缺点,还能够有效解 ...

  4. 【图像分割】基于计算机视觉实现视网膜图像中的血管分割附matlab代码

    1 简介 视网膜图像里的血管是可以被观察到的一类微血管,并且它是无创伤的,而其分布位置也属于深度部位[5].其分布.结构和形态特征的变化能在一定程度上反映病变的程度.而白血病.糖尿病以及高血压等疾病都 ...

  5. a*算法matlab代码_NSGAII多目标优化算法讲解(附MATLAB代码)

    小编今天为大家讲解NSGA-II多目标优化算法,提到多目标优化,大家可能第一个就想到NSGA-II算法,今天小编就带领大家解开NSGA-II的神秘面纱. NSGA-II全称是快速非支配排序遗传算法,这 ...

  6. 基于混合整数二阶锥(MISOCP)的配电网重构(附matlab代码)

    参考资料:主动配电网网络分析与运行调控 (sciencereading.cn) 配电网重构是指在满足配电网运行基本约束的前提下,通过改变配电网中一个或多个开关的状态对配电网中一个或多个指标进行优化.通 ...

  7. 【图像分割】基于区域的重叠椭圆拟合实现细胞分割附matlab代码

    1 内容介绍 一种基于区域的方法,用于用自动确定的可能重叠椭圆的数量来逼近任意 2D 形状.RFOVE 是完全无监督的,在没有任何假设或关于对象形状的先验知识的情况下运行,并且扩展和改进了递减椭圆拟合 ...

  8. 【图像分割】基于方向谷形检测实现静脉纹路分割附MATLAB代码

    1 内容介绍 一种基于方向谷形检测的指静脉图像分割方法及其系统,终端,包括以下步骤:步骤1,接收图像采集模块采集的指静脉图像;步骤2,对截取的指静脉图像进行脊波变换作图像增强处理;步骤3,针对增强处理 ...

  9. 【图像识别】基于BP神经网络实现手写体大写字母识别附matlab代码

    1 简介 手写体字符识别是人机交互领域的一个重要内容,本文基于 BP 神经网络实现了任意数量字符模版的多字符手写体字符识别.分为以下几步,第一,首先对目标图像进行识别前预处理.包括灰度图像二值化,图像 ...

  10. 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(附matlab代码)

    Date: 2022.4.26 文章目录 前言 1.总体介绍 2.详细分析 2.1.训练程序 2.2.测试程序 3.测试效果图 4.测试部分matlab代码 前言 在毕业设计中实现了基于PCA和BP神 ...

最新文章

  1. iOS已发布应用中对异常信息捕获和处理
  2. .NET平台开源项目速览(8)Expression Evaluator表达式计算组件使用
  3. oracle中查看用户权限
  4. Angular里的property binding的一个例子
  5. 展讯康一:2020年推出5G芯片 第一桶金含金量最高
  6. [python opencv 计算机视觉零基础到实战] 十一找到图片中指定内容
  7. mysql——JDBC
  8. 阿里巴巴Java开发手册-finally块必须对资源对象、流对象进行关闭操作,如果有异常也要做try-cach操作
  9. 苹果知名开发者怒“怼”:GitHub 不可信,俄罗斯开发者贡献的项目遭毁灭性打击...
  10. Oracle操作(转)
  11. SpringBoot2.0.0启动流程
  12. 最详细的Java入门完整教程,学Java先收藏了!
  13. 几句代码让Ios系统内核崩溃
  14. JavaWeb项目上云教程(Java项目在腾讯云上部署操作教程)
  15. APICloud Studio 在海马玩模拟器上调试程序
  16. Hadoop 3.x安装部署详细手顺
  17. ELK日志分析平台(二)----logstash数据采集
  18. 4行代码实现微信送祝福,这个新年有点不一样
  19. 谷歌play支付_Google Play的新功能
  20. Port Triggering

热门文章

  1. html转pdf分页问题
  2. k3刷机 重置_什么是联想 K3刷机前的双清
  3. 北京各区优质高中排名
  4. Ubuntu 16.04下如何安装QT5?
  5. 用Python学《微积分B》(Fourier级数)
  6. webstorm主题配置
  7. 搭建PyQt环境(Vs Code)
  8. 如何在计算机管理路由器,如何在电脑上管理自家的wifi ? | 192路由网
  9. JS实现文件的上传与下载
  10. 人工智能一种现代化学习方法——学习笔记(13章)