0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CV基础之区域生长与分水岭算法

新机器视觉 来源:机器学习AI算法工程 作者:机器学习AI算法工 2021-06-10 15:39 次阅读

区域生长是一种串行区域分割的图像分割方法。区域生长是指从某个像素出发,按照一定的准则,逐步加入邻近像素,当满足一定的条件时,区域生长终止。区域生长的好坏决定于1.初始点(种子点)的选取。2.生长准则。3.终止条件。区域生长是从某个或者某些像素点出发,最后得到整个区域,进而实现目标的提取。

区域生长的原理

区域生长的基本思想是将具有相似性质的像素集合起来构成区域。具体先对每个需要分割的区域找一个种子像素作为生长起点,然后将种子像素和周围邻域中与种子像素有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。将这些新像素当作新的种子继续上面的过程,直到没有满足条件的像素可被包括进来。这样一个区域就生长成了。

区域生长实现的步骤如下:

1. 对图像顺序扫描!找到第1个还没有归属的像素, 设该像素为(x0, y0);

2. 以(x0, y0)为中心, 考虑(x0, y0)的4邻域像素(x, y)如果(x0, y0)满足生长准则, 将(x, y)与(x0, y0)合并(在同一区域内), 同时将(x, y)压入堆栈;

3. 从堆栈中取出一个像素, 把它当作(x0, y0)返回到步骤2;

4. 当堆栈为空时!返回到步骤1;

5. 重复步骤1 - 4直到图像中的每个点都有归属时。生长结束。

这个过程中有几个关键的问题:

a》 给定种子点(种子点如何选取?)

种子点的选取很多时候都采用人工交互的方法实现,也有用其他方式的,比如寻找物体并提取物体内部点作为种子点。

b》 确定在生长过程中能将相邻像素包括进来的准则

灰度图像的差值;彩色图像的颜色等等。都是关于像素与像素间的关系描述。

c》 生长的停止条件

Python实现

f85e6d0e-c9b7-11eb-9e57-12bb97331649.png

f88b5d82-c9b7-11eb-9e57-12bb97331649.png

f8b5bca8-c9b7-11eb-9e57-12bb97331649.png

灰度差值的区域生长算法实现

算法实现的步骤:

a》 创建一个空白的图像(全黑);

b》 将种子点存入vector中,vector中存储待生长的种子点;

c》 依次弹出种子点并判断种子点如周围8领域的关系(生长规则),相似的点则作为下次生长的种子点;

d》 vector中不存在种子点后就停止生长。

fb8d67a0-c9b7-11eb-9e57-12bb97331649.png

fbdd1bc4-c9b7-11eb-9e57-12bb97331649.png

贴图看看使用该算法的图像处理效果:

首先对原图像进行二值化:

fc2f7c70-c9b7-11eb-9e57-12bb97331649.png

得到种子点的方法这里就不用介绍了,这个不是该算法的重点。得到两个种子点(左右肺),分别使用区域生长算法得到左右肺区,然后与原图进行与运算,得到结果:

fc4a5874-c9b7-11eb-9e57-12bb97331649.png

分水岭算法原理

灰度图像可以被看成拓扑平面,灰度值高的区域可以看出山峰,灰度值低的区域可以看成是山谷。向每一个山谷当中灌不同颜色的水。水位升高,不同山谷的水会汇合,为防止不同山谷的水汇合,小在汇合处建立起堤坝。然后继续灌水,然后再建立堤坝,直到山峰都掩模。构建好的堤坝就是图像的分割。

此方法通常会得到过渡分割的结果,因为图像中的噪声以及其他因素。为了减少此影响,opencv使用基于标记的分水岭算法,此算法要设置哪些山谷中的汇合点,哪些不是。这是一种交互式的图像分割算法那。我们要给已知对象打上不同表情。如果某个区域肯定是前景或对象,就使用某个颜色或灰度值标签标记它。如果是背景那么使用其他颜色进行标记,其余不能确定的部分用0标记。然后使用分水岭算法,每次灌水,标签会被更新,当两个不同颜色的标签相遇就会构建堤坝,知道所有山峰掩模,最后得到的边界对象值是-1。

python 代码:

对挨在一起的对象进行分割。

要出去图像中的白噪声。可以使用形态学运算,使用闭运算去除对象中的空洞。

靠近对象中心的区域是前景,离对象远的区域是背景,不确定的区域是边界。

首先提取硬币区域,使用腐蚀操作去掉边缘,剩下的就是硬币。但硬币没有接触时,此方法有效,但是由于硬币相互接触,就要使用另外一种有效的方法:距离变换加上合适的阈值。

之后,要寻找不确定是否是硬币的区域。这里需要膨胀操作。膨胀操作会将对象边界延伸到背景当中。由于边界区域被去除,现在就能知道哪些区域是前景,哪些是背景。

余下的区域不知道如何区分,那么使用分水岭算法。这些区域通常是前景与背景的交界处。从能否确认是否是背景的区域中减去确定是前景的区域就得到了边界。

(前景和背景)

使用作者的代码后生产的结果,提取到了前景,为了演示一下不确定的区域,调了一下计算前景的距离变换的参数,使得中间出现不确定的区域)

这里面使用个cv2.distanceTransform函数

该函数用于计算2值图象中所有像素离其最近的值为0像素的近似距离。

参数为

fd54d302-c9b7-11eb-9e57-12bb97331649.png

完整代码

fd93e24a-c9b7-11eb-9e57-12bb97331649.png

现在知道了那些背景是硬币,可以创建标签。(与原图像大小相同,数据类型为int32的数组)。

对于已经确定分类的区域,也就是背景和前景,使用整数标记,不确定的区域是用0标记。可以使用cv2.connectedComponents()函数来实现此功能。它会将背景标记为0,其他标记为位从1开始的正整数。

但是,如果背景标记为0,那么分水岭算法会将其当成位置区域,所以使用不同的整数进行标记,对于不确定的区域,函数标记为0.

结果使用JET颜色地图表示。深蓝色未知区域,硬币区域使用不同颜色。其余部分用浅蓝色。

使用分水岭算法

效果不错

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    27

    文章

    1288

    浏览量

    56709
  • 图像分割
    +关注

    关注

    4

    文章

    182

    浏览量

    17995
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84613

原文标题:CV基础:区域生长与分水岭算法

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    上海贝荣获年度功率半导体/驱动器奖项

    近日,上海贝市场工业市场经理冒晶晶受邀参加由全球技术信息集团 ASPENCORE举办的“IIC SHENZHEN-国际集成电路展览会暨研讨会”。会议中,上海贝工业市场经理冒晶晶进行了 “功率器件
    的头像 发表于 11-14 10:40 281次阅读

    边缘计算AI算法盒子在停放充电区域AI智慧监控的应用

    随着新能源汽车的普及,停放充电区域的安全与效率问题日益凸显。边缘计算盒子(AI算法盒子)的引入,为这一领域带来了革命性的智慧监控解决方案,极大地提升了停放充电区域的管理水平。边缘计算盒子(AI
    的头像 发表于 08-27 15:00 340次阅读
    边缘计算AI<b class='flag-5'>算法</b>盒子在停放充电<b class='flag-5'>区域</b>AI智慧监控的应用

    申瓷正式竣工投产!

    股份全资子公司—上海华申瓷集成电路有限责任公司(以下简称:华申瓷)在上海临港举行开业仪式。上海自由贸易试验区临港新片区管委会高科处副处长吴海涛、临港集团副总经济师、临港科投公司董事长翁巍、临
    的头像 发表于 08-20 16:54 646次阅读

    从原理聊JVM(一):染色标记和垃圾回收算法

    导读 JAVA简单易用的特性,能够让研发人员在不了解JVM的底层运行机制的情况下依旧能够编写出功能完善的代码。 但是对JVM的理解,是一个程序员普通和优秀的分水岭。全面地了解JVM的工作原理,能够
    的头像 发表于 08-20 15:25 218次阅读
    从原理聊JVM(一):染色标记和垃圾回收<b class='flag-5'>算法</b>

    地物光谱仪:归一化植被指数评价酿酒葡萄生长状况研究

    影响独立发酵单元内原料质量均一性和葡萄酒品质。了解栽培地块内的葡萄生长势差异和确定与相适应的栽培管理技术措施,是提高葡萄原料品质的重要基础工作。然而,人工调查地块内所有单株的生长势差异,劳动力需求量大、成本高。基于地物
    的头像 发表于 04-03 14:47 254次阅读
    地物光谱仪:归一化植被指数评价酿酒葡萄<b class='flag-5'>生长</b>状况研究

    小米汽车起售21万5900贵吗 专家:20万元是汽车定价的分水岭

    据悉,小米汽车SU7将提供三种配置供消费者选择,分别是标准版、Pro版以及Max版,另有特别准备的创始版,可根据用户需求选配标准版或Max版的配置。
    的头像 发表于 03-29 09:42 1146次阅读

    微软春季发布会将发布多款AI新服务,AI PC销量或将提振供应链销量

    值得注意的是,全新的AI Explorer功能备受关注。据悉,它即将成为AI PC与普通PC的分水岭,并提供独特的AI先前操作搜索服务,这与微软曾经推出的Windows 10时间轴服务相仿。
    的头像 发表于 03-11 09:28 680次阅读

    关于人工智能的60条趋势预测

    2023年是技术发展的分水岭,生成式人工智能成为主流。2024年伊始,生成式AI的格局预计将迅速发展,带来一系列有望改变技术及其应用的趋势。这些趋势,从多模式人工智能模型的进步到小语言模型的兴起
    的头像 发表于 02-21 08:26 699次阅读
    关于人工智能的60条趋势预测

    无意发展至10nm以下,第二梯队晶圆代工厂的成熟工艺现状

    梯队的厂商们还在成熟工艺上稳扎稳打。   早在两年前,我们还会将28nm视作成熟工艺以及先进工艺的分水岭。但随着3nm的推出,以及即将到来的2nm,成熟工艺的定义已经发生了变化,分水岭已然换成了T2和T3晶圆厂不愿投入的7nm/8nm工艺
    的头像 发表于 02-21 00:17 3498次阅读
    无意发展至10nm以下,第二梯队晶圆代工厂的成熟工艺现状

    2024年,请不要再喊国产芯片替代

    2024年,是国产芯片的分水岭,强者愈强,弱者愈弱。从今以后,请不要再讲国产芯片替代,要讲芯片性能和竞争力,国产芯片替代的篇章就此翻过。 这五年,给了国产芯片替代机遇和充分的时间窗口,市场给机会
    的头像 发表于 01-25 11:50 827次阅读

    2024年生成式人工智能五大发展趋势

    2023年是技术发展的分水岭,生成式人工智能成为主流。随着我们进入2024年,预计生成式人工智能格局将迅速演化,引入一系列有望改变技术及其应用的趋势,包括多模态人工智能模型、小语言模型、自主代理等。
    的头像 发表于 01-23 09:50 1432次阅读

    智能传感器深度分析:智能物联2.0开启,年复合增长率超15%

    来源:物联网智库,谢谢 编辑:感知芯视界 Link 根据智次方·物联网智库的判断,2024年将是AIoT产业发展的分水岭,智能物联2.0开启,产业将进入“通感智值一体化”的新阶段,启动新一轮的强势
    的头像 发表于 01-10 10:59 360次阅读

    二值图像连通区域的标记原理

    ,即给每个连通区域一个唯一的标识符。 连通区域标记是图像分析和图像处理中的一个重要步骤,可以用于图像分割、边缘检测、目标提取、形状描述等应用。在本文中,我们将介绍二值图像连通区域标记的原理和常用
    的头像 发表于 01-05 14:28 823次阅读

    半导体行业晶体生长和硅片准备(五)

    在晶体生长的过程中,由于某些条件的引入将会导致结构缺陷的生成。
    的头像 发表于 01-05 09:12 382次阅读
    半导体行业<b class='flag-5'>之</b>晶体<b class='flag-5'>生长</b>和硅片准备(五)

    半导体行业晶体生长和硅片准备(四)

    浮区晶体生长是本文所解释的几个过程之一,这项关键性的技术是在历史早期发展起来的技术,至今仍用于特殊用途的需求。
    的头像 发表于 12-28 09:12 532次阅读
    半导体行业<b class='flag-5'>之</b>晶体<b class='flag-5'>生长</b>和硅片准备(四)