分水岭算法原理
股票分水岭算法详细介绍与应用实例

股票分水岭算法详细介绍与应用实例股票分水岭算法是一种用于预测和分析股票价格趋势的技术指标,它在股票交易中具有广泛的应用。
该算法基于一个假设,即股票价格在突破历史水平时可能会出现重大的价格波动。
算法原理股票分水岭算法基于技术分析中的趋势线和支撑阻力线的概念。
趋势线是连接股票价格的高点或低点的直线,它们可以帮助我们识别价格趋势。
支撑线是股票价格下跌时价格止跌的水平,阻力线是股票价格上升时价格遇到阻碍的水平。
分水岭指的是当股票价格突破趋势线或支撑阻力线时,可能会引发价格的重大变动。
算法步骤股票分水岭算法的主要步骤如下:1. 收集数据:收集股票的历史价格数据,并将其存储在一个数据集中。
数据集应包含最高价格、最低价格、开盘价格和收盘价格。
2. 构建趋势线:根据收集到的数据,使用技术指标分析工具来构建股票价格的趋势线。
趋势线应该能够连接价格的高点或低点,并且在整个价格历史周期内保持一定的稳定性。
3. 确定支撑阻力线:根据趋势线和价格历史数据,使用技术指标分析工具来确定股票价格的支撑线和阻力线。
支撑线应该能够标识出股票价格下跌时的支撑水平,而阻力线应该能够标识出股票价格上涨时的阻力水平。
4. 监测价格突破:在股票价格接近趋势线、支撑线或阻力线时,监测价格是否突破这些线。
如果价格突破了趋势线,可能意味着价格趋势的改变;如果价格突破了支撑阻力线,可能意味着价格反转的可能性增加。
5. 制定交易策略:根据价格突破趋势线、支撑线或阻力线的情况,制定相应的交易策略。
如果股票价格突破了趋势线并持续上涨,可以考虑买入股票;如果股票价格突破了支撑线并持续下跌,可以考虑卖出股票。
应用实例以下是一个股票分水岭算法的应用实例:假设我们使用股票分水岭算法来预测某只股票价格的趋势。
我们收集了该股票最近一年的历史价格数据,并使用该数据来构建趋势线、支撑线和阻力线。
经过分析,我们发现该股票的趋势线一直呈上升趋势,价格波动较小,基本稳定。
支撑线和阻力线分别设定在最低价和最高价的水平。
区域生长 形态学 分水岭算法

n r 数 h(rk ) nk 表示。其中, k 是第K级灰度, k 是灰
度级为 rk的像素个数。
通常迚行归一化处理,n是图像中像素的总数 n p ( rk ) k ,我们也可以称为 n 灰度级为 rk 发生的概率估计。且各级相加之和为
1
提出一种想法:若一副图像的像素占有全部可能的灰度 级并且分布均匀,那么这幅图像就会有较高的对比度,
直方图匹配
第二部分
形态学操作
膨胀不腐蚀
1
4
区域填充
开操作不闭操 作
2
形态学
5
连通分量的提 取
击中击丌中变 换
3
6
重构
腐蚀
把结构元素S平移x后得到Sx,若Sx包含于X,我们记下这个x点,所有满 足上述条件的x点组成的集合称做X被S腐蚀(Erosion)的结果。用公式表示为:
腐蚀的方法是,拿S的原点和X上的点一个一个地对比,如果S上的所有点 都在X的范围内,则S的原点对应的点保留,否则将该点去掉。
最近工作汇报
前 言
首先自我检讨一下,来这边整整一个月的时间,说真的并没有把时间
分配处理的很好,常常处在一种困惑的阶段,时丌时得干劲十足,可能一 段时间之后又失去方向了。。。丌过丌管怎么样,还是在一定程度上有所
迚步,首先是渐渐收敛了玩的心,再者就是戒多戒少学到了一些知识,希
望在今后的日子里,可以更好得利用自己的学习时间,提高效率,和大家 沟通交流,自己也能有更多的IDEA,再接再励 O(∩_∩)O
且灰度级动态范围大
直方图均衡
直方图均衡化:顾名思义,就是通过灰度变换将一幅图象转换 为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象 素点数的过程, Ps ( s ) 1 直方图均衡化变换:设灰度变换s=T(r)为斜率有限的非减连续 可微函数,它将输入图象Ii(x,y)转换为输出图象Io(x,y),输 入图象的直方图为Hi(r),输出图象的直方图为Ho(s),则根据直 方图的含义,经过灰度变换后对应的小面积元相等: Ho(s)ds=Hi(r)dr
基于自适应阈值和形态学的改进分水岭分割算法

基于自适应阈值和形态学的改进分水岭分割算法下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!基于自适应阈值和形态学的改进分水岭分割算法分水岭算法是一种经典的图像分割方法,但在实际应用中常常因为过分分割或者欠分割问题而导致效果不佳。
分水岭算法

分水岭算法有好多种实现算法,拓扑学,形态学,浸水模拟和降水模拟等方式。
分水岭算法(Watershed Algorithm),是根据分水岭的构成来考虑图像的分割。
现实中我们可以或者说可以想象有山有湖的景象,那么那一定是水绕山,山围水的情形。
当然在需要的时候,要人工构筑分水岭,以防集水盆之间的互相穿透。
而区分高山(plateaus)与水的界线,以及湖与湖之间的间隔或都是连通的关系,就是分水岭(watershed)。
分水岭的计算过程是一个迭代标注过程。
分水岭比较经典的计算方法是L. Vincent提出的。
在该算法中,分水岭计算分两个步骤,一个是排序过程,一个是淹没过程。
首先对每个像素的灰度级进行从低到高排序,然后在从低到高实现淹没过程中,对每一个局部极小值在h阶高度的影响域采用先进先出(FIFO)结构进行判断及标注。
分水岭变换得到的是输入图像的集水盆图像,集水盆之间的边界点,即为分水岭。
显然,分水岭表示的是输入图像极大值点。
因此,为得到图像的边缘信息,通常把梯度图像作为输入图像,即g(x,y)=grad(f(x,y))={[f(x,y)-f(x-1,y)]2[f(x,y)-f(x,y-1)]2}0.5式中,f(x,y)表示原始图像,grad{.}表示梯度运算。
分水岭算法对微弱边缘具有良好的响应,图像中的噪声、物体表面细微的灰度变化,都会产生过度分割的现象。
但同时应当看出,分水岭算法对微弱边缘具有良好的响应,是得到封闭连续边缘的保证的。
另外,分水岭算法所得到的封闭的集水盆,为分析图像的区域特征提供了可能。
为消除分水岭算法产生的过度分割,通常可以采用两种处理方法,一是利用先验知识去除无关边缘信息。
二是修改梯度函数使得集水盆只响应想要探测的目标。
为降低分水岭算法产生的过度分割,通常要对梯度函数进行修改,一个简单的方法是对梯度图像进行阈值处理,以消除灰度的微小变化产生的过度分割。
即g(x,y)=max(grad(f(x,y)),gθ)式中,gθ表示阈值。
传统算法——分水岭算法

传统算法——分⽔岭算法分⽔岭算法是⼀种基于区域分割的算法。
它是基于地理形态的分析的图像分割算法,模仿地理结构(⽐如⼭川、沟壑,盆地)来实现对不同物体的分类。
封闭性是分⽔岭算法的⼀个重要特征图像的灰度空间很像地球表⾯的整个地理结构,每个像素的灰度值代表⾼度。
其中的灰度值较⼤的像素连成的线可以看做⼭脊,也就是分⽔岭。
其中的⽔就是⽤于⼆值化的gray threshold level,⼆值化阈值可以理解为⽔平⾯,⽐⽔平⾯低的区域会被淹没,刚开始⽤⽔填充每个孤⽴的⼭⾕(局部最⼩值)。
当⽔平⾯上升到⼀定⾼度时,⽔就会溢出当前⼭⾕,可以通过在分⽔岭上修⼤坝,从⽽避免两个⼭⾕的⽔汇集,这样图像就被分成2个像素集,⼀个是被⽔淹没的⼭⾕像素集,⼀个是分⽔岭线像素集。
最终这些⼤坝形成的线就对整个图像进⾏了分区,实现对图像的分割。
在该算法中,空间上相邻并且灰度值相近的像素被划分为⼀个区域。
分⽔岭算法的运⾏过程:1. 把梯度图像中的所有像素按照灰度值进⾏分类,并设定⼀个测地距离阈值。
2. 找到灰度值最⼩的像素点(默认标记为灰度值最低点),让threshold从最⼩值开始增长,这些点为起始点。
3. ⽔平⾯在增长的过程中,会碰到周围的邻域像素,测量这些像素到起始点(灰度值最低点)的测地距离,如果⼩于设定阈值,则将这些像素淹没,否则在这些像素上设置⼤坝,这样就对这些邻域像素进⾏了分类。
4. 随着⽔平⾯越来越⾼,会设置更多更⾼的⼤坝,直到灰度值的最⼤值,所有区域都在分⽔岭线上相遇,这些⼤坝就对整个图像像素的进⾏了分区。
⽤上⾯的算法对图像进⾏分⽔岭运算,由于噪声点或其它因素的⼲扰,可能会得到密密⿇⿇的⼩区域,即图像被分得太细(over-segmented,过度分割),这因为图像中有⾮常多的局部极⼩值点,每个点都会⾃成⼀个⼩区域。
其中的解决⽅法:1. 对图像进⾏⾼斯平滑操作,抹除很多⼩的最⼩值,这些⼩分区就会合并。
2. 不从最⼩值开始增长,可以将相对较⾼的灰度值像素作为起始点(需要⽤户⼿动标记),从标记处开始进⾏淹没,则很多⼩区域都会被合并为⼀个区域,这被称为基于图像标记(mark)的分⽔岭算法。
分水岭指标的使用绝招 使用技巧

分水岭指标是一种用于判断趋势翻转的技术分析工具,它可以帮助投资者识别市场的趋势变化,从而做出更加明智的投资决策。
在使用分水岭指标时,投资者需要结合其他技术分析工具和市场基本面因素来进行分析,才能更准确地判断市场的走势。
下面将介绍分水岭指标的使用绝招和技巧。
一、了解分水岭指标的基本原理分水岭指标是一种能够识别市场趋势反转的技术指标,它可以帮助投资者更好地判断市场的走势。
分水岭指标的基本原理是通过计算一定周期内的价格波动幅度来判断市场的趋势,当价格波动幅度超过一定的阈值时,就意味着市场可能发生趋势反转。
投资者可以根据分水岭指标的计算结果来制定投资策略,从而更好地把握市场的变化。
二、合理选择分水岭指标的参数在使用分水岭指标时,投资者需要合理选择指标的参数,以确保计算出的结果能够准确反映市场的实际情况。
一般来说,分水岭指标的参数包括计算周期和阈值大小。
在选择计算周期时,投资者需要根据市场的交易周期和自己的投资策略来确定,一般可以选择较短的周期以及较大的阈值,从而更好地反映市场的波动情况。
当然,投资者也可以根据自己的实际情况进行适当调整,以确保计算结果更加准确。
三、结合其他技术分析工具进行分析在使用分水岭指标时,投资者还需要结合其他技术分析工具和市场基本面因素来进行综合分析,从而更好地判断市场的走势。
投资者可以结合移动平均线、相对强弱指标等技术指标来进行综合分析,从而更加准确地判断市场的趋势。
投资者还需要关注市场的基本面因素,如经济数据、政策变化等,以确保投资决策更加周全。
四、灵活运用分水岭指标在使用分水岭指标时,投资者需要灵活运用,不应该将其作为唯一的判断依据。
分水岭指标只是一种辅助工具,投资者还需要根据实际情况进行灵活运用,从而更好地把握市场的走势。
投资者可以结合自己的实际经验和其他分析方法,从而更好地判断市场的走势,做出更加明智的投资决策。
五、严格控制风险在使用分水岭指标进行投资决策时,投资者需要严格控制风险,避免盲目跟风和投机行为。
emgu分水岭算法计数

emgu分水岭算法计数摘要:一、分水岭算法简介1.分水岭算法的概念2.分水岭算法的应用场景二、emgu分水岭算法实现1.emgu库简介2.emgu分水岭算法原理3.emgu分水岭算法步骤三、emgu分水岭算法计数1.计数原理2.计数方法3.计数结果分析四、案例演示1.图像处理实例2.结果分析正文:【一、分水岭算法简介】分水岭算法(Watershed algorithm)是一种图像处理领域中的边缘检测和分割技术。
它的基本思想是寻找图像中像素之间的极值点,将这些极值点作为分水岭,将图像划分为不同的区域。
这种算法具有较好的适应性和稳定性,可以有效处理复杂场景下的图像分割问题。
【二、emgu分水岭算法实现】emgu(Emgu CV)是一个基于OpenCV的.NET库,提供了丰富的图像处理功能。
emgu分水岭算法实现了分水岭原理,并对算法进行了优化。
以下是emgu分水岭算法的基本步骤:1.对输入图像进行预处理,如滤波、去噪等。
2.计算图像的梯度幅值和方向。
3.寻找梯度幅值的最大值点和最小值点。
4.将最大值点和最小值点连接成边缘。
5.对边缘进行填充,得到分割后的图像。
【三、emgu分水岭算法计数】emgu分水岭算法计数是对分割后的图像中边缘像素进行统计的过程。
计数原理是根据边缘像素的颜色、纹理等特征,将其分为不同的类别。
以下是一种简单的计数方法:1.预处理:对分割后的图像进行去噪、平滑等操作,以消除边缘附近的噪声。
2.特征提取:从处理后的图像中提取边缘像素的特征,如颜色、纹理等。
3.分类:根据特征将边缘像素分为不同的类别。
可以使用机器学习方法(如SVM、神经网络等)进行分类。
4.计数:统计各个类别边缘像素的数量,得到最终的结果。
【四、案例演示】以下是一个使用emgu分水岭算法进行图像处理的实例:1.输入图像:一幅包含建筑物、道路、树木等元素的复杂场景图像。
2.使用emgu分水岭算法进行分割。
3.观察分割结果:可以发现,建筑物、道路和树木等元素得到了较好的分割。
分水岭算法原理

分水岭算法原理 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】所谓分水岭算法有好多种实现算法,拓扑学,形态学,浸水模拟和降水模拟等方式。
要搞懂就不容易了。
WatershedAlgorithm(分水岭算法),顾名思义,就是根据分水岭的构成来考虑图像的分割。
现实中我们可以或者说可以想象有山有湖的景象,那么那一定是水绕山,山围水的情形。
而区分高山(plateaus)与水的界线,以及湖与湖之间的间隔或都是连通的关系,就是我们可爱的分水岭(watershed)。
为了得到一个相对集中的集水盆,那么让水涨到都接近周围的最高的山顶就可以了,再涨就要漏水到邻居了,而邻居,嘿嘿,水质不同诶,会混淆自我的。
那么这样的话,我们就可以用来获取边界高度大,中间灰阶小的物体区域了,它就是集水盆。
浸水法,就是先通过一个适当小的阈值得到起点,即集水盆的底;然后是向周围淹没也就是浸水的过程,直到得到分水岭。
当然如果我们要一直淹没到山顶,即是一直处理到图像灰阶最高片,那么,当中就会出现筑坝的情况,不同的集水盆在这里想相遇了,我们要洁身自爱,到这里为止,因为都碰到边界了。
不再上山。
构筑属于自己的分水岭。
在计算机图形学中,可利用灰度表征地貌高。
图像中我们可以利用灰度高与地貌高的相似性来研究图像的灰度在空间上的变化。
这是空域分析,比如还可以通过各种形式的梯度计算以得到算法的输入,进行浸水处理。
分水岭具有很强的边缘检测能力,对微弱的边缘也有较好的效果。
为会么这么说呢为什么有很强的边缘检测能力,而又能得到相对集中的连通的集水盆现实中很好办,我们在往凹地加水的时候,直到它涨到这一块紧凑的山岭边缘就不加了;但是如果有一条小山沟存在,那没办法,在初始阈值分割的时候,也就是山沟与集水盆有同样的极小值,而且它们之间是以这个高度一直连接的。
那没关系,我们将它连通。
在图像上呢如何实现看看算法,算法思想是这样的:首先准备好山和初始的水。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
所谓分水岭算法有好多种实现算法,拓扑学,形态学,浸水模拟和降水模拟等方式。
要搞懂就不容易了。
WatershedAlgorithm(分水岭算法),顾名思义,就是根据分水岭的构成来考虑图像的分割。
现实中我们可以或者说可以想象有山有湖的景象,那么那一定是水绕山,山围水的情形。
而区分高山(plateaus)与水的界线,以及湖与湖之间的间隔或都是连通的关系,就是我们可爱的分水岭(watershed)。
为了得到一个相对集中的集水盆,那么让水涨到都接近周围的最高的山顶就可以了,再涨就要漏水到邻居了,而邻居,嘿嘿,水质不同诶,会混淆自我的。
那么这样的话,我们就可以用来获取边界高度大,中间灰阶小的物体区域了,它就是集水盆。
浸水法,就是先通过一个适当小的阈值得到起点,即集水盆的底;然后是向周围淹没也就是浸水的过程,直到得到分水岭。
当然如果我们要一直淹没到山顶,即是一直处理到图像灰阶最高片,那么,当中就会出现筑坝的情况,不同的集水盆在这里想相遇了,我们要洁身自爱,到这里为止,因为都碰到边界了。
不再上山。
构筑属于自己的分水岭。
在计算机图形学中,可利用灰度表征地貌高。
图像中我们可以利用灰度高与地貌高的相似性来研究图像的灰度在空间上的变化。
这是空域分析,比如还可以通过各种形式的梯度计算以得到算法的输入,进行浸水处理。
分水岭具有很强的边缘检测能力,对微弱的边缘也有较好的效果。
为会么这么说呢?为什么有很强的边缘检测能力,而又能得到相对集中的连通的集水盆?现实中很好办,我们在往凹地加水的时候,直到它涨到这一块紧凑的山岭边缘就不加了;但是如果有一条小山沟存在,那没办法,在初始阈值分割的时候,也就是山沟与集水盆有同样的极小值,而且它们之间是以这个高度一直连接的。
那没关系,我们将它连通。
在图像上呢?如何实现?
看看算法,算法思想是这样的:
首先准备好山和初始的水。
这山就是我们的初始图像了,比如用自然获取的图像的梯度来表征山地的每一点的高度吧;而初始的水就是在阈值记为Thre底下,所有的低于这个高度的整个山地都加水,直到这个阈值Thre高度。
从而有三个初始量:unsignedchar**Ori_image、
char**Seed_image和int**Label_image。
最后一个是为最终的结果做准备的。
当然要做好初始化,比如,Ori_image赋值为原图像(256色灰度图)的梯度值,Seed_image则是初始状态下有水的置位,无水的复位,而Label_image则全初始化为0,最终得到的是各点对应的区域号。
接下来是考虑将已加的水进行记录,记录成连通的区域,也就是看看有多少个互不相关的集水盆,有五个,那么我们就涨出五个湖,而且尽可能的高,只要大家想到不溢出。
在算法上,有多少个连通的区域就记录成多少个数据结构,功夫就在于如何将这些连通的区域连接成一块,并由一个数据结构来表达了。
很好,我们准备用一个向量容器来实现初始保存,保存所有标记区域种子队列的数组,里面放的是种子队列的指针<vector*>vque,而且这个队列是由一系列属于同一个区域的图像点组成,我们来自一个集水盆:);其保存方式是这样的:queue
*pque=newqueue[256];(pque),这样便将一个成员放进到这个区域来了,即容器--集水盆的
保管部,容器中的每个指针,都指向一个集水盆,也就是我们要的连通区域;所以我们可以方便地由这个容器数据结构直接读值的方便性进行操作,一个脚标就可以得到一个区域(队列指针)的指针;而每个队列还不简单,并不是一列整形数那么易搞,所以说啊,这个算法,真头痛,这个队列的一个成员是一个点;而注意到vque里存放的一256个队列的的起始指针,真够残忍的。
也就是说vque[i][j]就表达了一个队列,这个队列里可以存储操作一系列的点;显然容量取256是因为所有的初始或者是最终的区域中可能有0-256之间的不同的灰阶的点,那么我一个区域分用256个队列来记录这些成员点啦,很有可能,这里就只有一个集水盆,那么,256个灰阶的点都存在一个区域就有可能了。
统计初始连通区域的方法是,八连通邻域法,即从逐一扫描输入的Seed_imag的每个像素点,将所有的标记了的初始集水盆一一纳入各自的区域,这是整修图像的扫描,形成外循环。
先创建一个临时队列quetem,用来处理当前初始集水盆的连通连接,将逐一扫描到的属于一个特定的初始集水盆区域的可生长点暂存,并形成一个内循环。
对当前扫描点的处理是,首先判断该点是否为某个初始集水盆的点,如果不是跳过;接下来是,如果是初始集水盆的点,那么它的八连通域中是否存在不可生长的点(这里的不可生长是指Seed_image中没有标记的点),扫描的八连通邻域中的点是可生长的,即有标记的,则将之加入到临时队列中quetem;如果扫描到的连通邻域中有不可生长的至少一个点存在,那么加入到种子队列,记当前区域号为Num,当前扫描点为(m,n),从而当前的灰阶为
Ori_image[m][n],
将当前点添加到种子队列:vque[Num-1][Ori_image[m][n]].push(POINT(m,n))。
这里有两个循环,一个是quetem,另一个是Seed_image。
直到两个循环完整结束,那么就得到了各个连通初始集水盆的记录,保存标记是区域号Num;而我们同时得到了初始的分水岭,那就放在了保存地点vque,这里面标识了它们对应的区域号,和区域里面对应的点的灰阶,即是特定区域特定灰阶对应的点的集合;我们可以获取这些分水岭的点所在的区域号,可以得到该区域的所有的灰阶的点信息。
一句话,统计连通区域的功能有两个,一是标记初始区域,二是找分水岭。
初始的区域标记好了,分水岭也找到了,那么可以开始“水漫梁山”了。
这就是淹没过程。
淹没过程由也是由一个内嵌循环的循环来实现的:外循环是做水位上升(这里循环次数一定要256以内),waterlevel的上升,原来是已经做过了初始的水位分割,那么现在可以从Thre开始了,让水位慢慢上升,让它原本的湖慢慢扩张,尽量利用其应有的空间,而又不至于淹没到其它的邻居湖泊。
内循环是扫描每个初始区域(当前Num,从而有Num个循环)的分水岭的点(在vque[][]中),按照给定的水位进行扩张。
扩张过程是这样的:扫描到的分水岭的当前点,对其进行四连通邻域进行逐一检查,如果四连通域中有点没有标记的(那这一定是高度较高的点,较低的前面一定扫描过),那么先对该点以本区域号做标记Num(注意是当前的Num);再判断它在当前水位下是否可生长(灰阶是否小于等于waterlevel),如果可生长那么加入到vque[Num][waterlevel]种子队列中,将会再次进入内循环,否则如果在当前水位下不可生长,则加入到这个邻域点的分水岭集合中vque[Num][Ori_image[邻域点]]队列中。
如此往复循环,直到对应区域完成,一个水位,扫描所有的区域的分水岭,这样各自同时在一个水位下扩张,保证了不出现跳跃的情况出现(就是一个水位一个区域全局扩张)。
最终,所有的区域在每个水位都扩张完毕,得到了分割图,我们的大湖泊形成了。
这是分水岭算法的一种实现方式。
仔细考察不难发现这种实现方式不能产生新的集水盆,也就是说,由于初始集水盆的局限性,很可能会浪费大部分没有发掘出来的起始点较高的集水盆地。
这样,我们就要对算法进行修改了。
实现方式是:在淹没的过程中,我们是由阈值Thre的水位开始淹没的,那么我们可以对初始区域之外的没有标记的点(从Seed_image中考察),对之进行标记,条件是先把这一轮的内循环做好,然后在剩下的没标记区域中发掘新的集水盆,并加入到我们的种子队列中,下一个水位开始,就又多了一个新成员了,让它们不断膨胀,成长,拥有自己的小天的成员就会逐一的被分割出来。
不过话说回来,我们这里是采用梯度图像,一般情况下,阈值初始分割能够满足我们的要求,把灰阶变化
平滑的先截取出来,梯度信息已然足够强大;而如果采用了新盆地扩张,则比较适用于原始图像。
分水岭算法主要的分割目的在于找到图像的连通区域。
利用梯度信息作为输入图像,会有一个矛盾点,如果对原始图像进行梯度计算时不作滤波平滑处理,很容易将物体分割成多个物体,那是因为噪声的影响;而如果进行滤波处理,又容易造成将某些原本几个的物体合成一个物体。
当然这里的物体主要还是指图像变化不大或者说是灰度值相近的目标区域。