【图像分割】基于分水岭实现图像分割附matlab代码

简介: 【图像分割】基于分水岭实现图像分割附matlab代码

1 简介

文章首先介绍了传统的图像分割技术的特点和缺点,在这个基础上,研究了基于分水岭技术的图像分割算法,对分水岭技术的基本原理进行概述,先获取整幅图像的基本特征,然后将图像形态予以梯度处理,从而得到不同类别的图像信息分割线,最后,本文采用MATLAB编码实现对图像信息的轮廓提取以及图像分割.通过仿真,结果验证了基于分水岭技术的图像分割算法的效果是优于传统分割算法的效果.

分水岭算法是根据数学思想提出的,是基于数学形态学的一种图像分割算法。为更好的了解该算法,将图像当作一个拓扑地貌,并且将地貌上不同高度的地方用像素的灰度值进行表示,并且通过模拟浸入过程来进行图像分割。通过模拟浸入的过程可以发现,当水涌进或流出时都会使图像出现两个不同的部分,一部分被叫作集水盆地,即地貌中的最低处,一部分被叫作分水岭线,即将集水盆地分割开的边界线。因此,根据模拟浸入的原理可以将形成分水岭的过程分为两种:一种是自上而下的模拟降水算法如图 2.8 所示,一种是自下而上的模拟泛洪算法如图 2.9 所示。

自上而下模拟降水算法是当雨水降落在地形曲面上时,当雨水从高处向低处流

时,会通过不同路径进入,但都流入同一个地方,而通过不同路径流向同一个地方的所有路线被划分成一个连续的分支即分水岭线,而流向的地方被称为集水盆地。

自下而上模拟泛洪算法是将具有盆地的整个地形曲面垂直的完全放入水中,然后给盆地的最低处戳一个洞,这样水就可以均匀的涌进每个洞里,最终结果是盆地被水注满,当两个或多个盆地被水注满并且将要汇合时,需要堤坝来防止水聚集在一起,等到所有的盆地都被注满水时,所有的堤坝顶部在水面上方,这样就将这个地形分成了两部分,一部分是集水盆地,一部分是分水岭线。

无论是模拟降水还是模拟泛洪我们都可以从其意义中获得有关分水岭算法的重

要性质,即分水岭算法所获得分割线具有连通性并且各个区域之间的边界是连续的,所得到的分割区域是封闭的。最后,分水岭分割算法的目的就是将图像背景中的像素点根据相似性的性质提取出来。除此之外,若梯度值小则灰度值变化也小,所以我们可以得出分水岭算法和梯度有很大的关系,因此我们在使用分水岭算法之前,需要将原图像通过梯度算子边缘检测获得梯度图像.

2 部分代码

%% 程序分享 %--------------------------------------close allclearclc%% 分水岭进行分割I=imread('rice.png');J=imtophat(I,strel('disk',15));bw=im2bw(J,graythresh(J));bw_opened=bwareaopen(bw,5);L1=bwlabel(bw_opened);rgb1=label2rgb(L1, 'spring', 'c', 'shuffle');figure;subplot(1,2,1),imshow(I),title('原始图像');subplot(1,2,2),imshow(rgb1),title('不使用分水岭的分割结果');%% 6. 显示分水岭的分割结果rgb2=label2rgb(L2, 'hot', 'c', 'shuffle');figure;subplot(1,2,1),imshow(I),title('原始图像');subplot(1,2,2),imshow(rgb2),title('经分水岭分割后的图像');%% 7. 最后,比较两种结果figure;subplot(1,3,1),imshow(I),title('原始图像');subplot(1,3,2),imshow(rgb1),title('不用分水岭的分割结果');subplot(1,3,3),imshow(rgb2),title('使用分水岭的分割结果');

3 仿真结果

4 参考文献

[1]莫雨洁. 基于分水岭技术的图像分割算法研究与实现[J]. 信息通信, 2020(3):2.

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

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


相关文章
|
1月前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
216 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
139 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
105 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
7月前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
7月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
7月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
7月前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)