百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

C++ OpenCV基于距离变换与分水岭的图像分割

yuyutoo 2024-10-13 00:30 1 浏览 0 评论

以下文章来源于微卡智享 ,作者Vaccae


图像分割

图像分割,英文名image segmentation,就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:

  • 基于阈值的分割方法
  • 基于区域的分割方法
  • 基于边缘的分割方法以及基于特定理论的分割方法

从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像索赋予相同的编号。


  • 图像分割的目标是将图像中像素根据一定的规则分为若干个(N)个cluster集合,I每个集合包含一类像素。
  • 根据算法分为监督学习算法和无监督学习算法,图像分割的算法多数都是无监督学习算法。---KMeans

距离变换与分水岭介绍

距离变换

距离变换常见算法有两种

  • 不断膨胀/ 腐蚀得到
  • 基于倒角距离

分水岭变换

分水岭变换常见的算法

基于浸泡理论实现

相关API

cv::distanceTransform(

InputArray src,

OutputArray dst,

OutputArray labels,

int distanceType,

int maskSize,

int labelType = DIST_LABEL_CCOMP

)

distanceType = DIST_L1/DIST_L2,

maskSize = 3x3,最新的支持5x5,推荐3x3、

labels离散维诺图输出,

dst输出8位或者32位的浮点数,单一通道,大小与输入图像一致

cv::watershed(

InputArray image,

InputOutputArray markers

)


操作步骤

  1. 将白色背景变成黑色-目的是为后面的变换做准备
  2. 使用filter2D与拉普拉斯算子实现图像对比度提高,sharp
  3. 转为二值图像通过threshold
  4. 距离变换
  5. 对距离变换结果进行归一化到[0~1]之间
  6. 使用阈值,再次二值化,得到标记
  7. 腐蚀得到每个Peak - erode
  8. 发现轮廓 – findContours
  9. 绘制轮廓- drawContours
  10. 分水岭变换 watershed
  11. 对每个分割区域着色输出结果

代码演示

新建一个项目opencv-0027,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法

这次我们用opencv里面自带的一张图像来实个这个方法

运行显示的图像为

1.将白色背景变成黑色

我们运行看一下

可以看到右边的已经把背景都换为黑色了。

2.使用filter2D与拉普拉斯算子实现图像对比度提高,sharp

我们再运行看一下,左边的就是生成的结果图,可以看出左边的清晰度更高了一些

3.转为二值图像通过threshold

我们再运行看一下,左边的图像已经让我们转换为二值图像了,也比较清晰

4.距离变换

5.对距离变换结果进行归一化到[0~1]之间

因为距离变换看不出任何效果,所以我们把4和5两步放在一起显示

我们再运行一下看看执行结果

6.使用阈值,再次二值化,得到标记

显示效果为

7.腐蚀得到每个Peak

效果不太好看,我们需要再进行二值的腐蚀,把上面的代码再修改一下

我们再看一下运行效果,可以看出来比刚才的效果好很多了

8.标记并且开始查找轮廓

这一步只是查找轮廓,我们接下来绘制查找的轮廓再一起显示出来

9.绘制轮廓

上面drawContours和circle最后一个参数都是用了-1,代表着画的轮廓里面进行颜色填充

我们再显示一下看看效果

看到好像什么也没有,这是因为我们画的轮廓太小了, 我们改一下显示效果

把最后显示cv::imshow(imgdst,makers*5000)再乘5000,重新看一下显示效果


这会儿就可以看到绘制的轮廓出来了

10.分水岭变换

我们看看显示的效果

可以看出,每个轮廓都有明显的区分开了。

11.对每个分割区域着色输出结果

然后我们再运行看到最后结果

相关推荐

《亲爱的》特效真厉害,一块绿布贯彻全集,不得不佩服李现的演技

说起《亲爱的热爱的》这部电视剧,相信很多人并不陌生,这部电视剧让男演员李现因此爆红,其实李现是一个非常有潜力的男演员,他的表现也非常的精彩。但是大家都知道,在每一部电视剧中都有特效的存在,这部电视剧也...

充分运用AI特效,京剧电影《大唐贵妃》正式开机

“当唱到‘在天愿为比翼鸟,在地愿为连理枝’的时候,会从演员身后飞起一只巨大无比的比翼鸟,鸟在空中盘旋,刮起的风甚至会吹过角色的脸……”11月10日,电影《大唐贵妃》在上海车墩影视基地正式开机,这是第一...

工业光魔:没有PS的年代,特效怎么做?

大家好,我是戴着眼镜拿着话筒的阿拉斯加,片片。昨天,我给大家简单介绍了传奇特效公司——工业光魔的起源。...

价值13亿的“爽片”上映,每一帧都是钱砸出来的特效,却无缘国内

在七月二号的时候;美国在网络上面上映了一部大制作的“爽片”《明日之战》。...

影视特效是怎么制作出来的?来,一起体验吧!

电影是人们生活中不可缺少的一部分,是视觉与听觉相结合的现代艺术。悲剧、喜剧、亲情、友情、爱情都是它所能展现的内容。影视艺术有哪些独有的特征?什么是蒙太奇?全息影片又是什么意思?最近,少儿频道的一档节目...

ps五分钟学会自己制作“特效”

嗨,欢迎观看本期的摄影后期教学。那就是教大家一个特别炫酷,特别实用的ps“特效”光!有同学会问,“啊,特效光是不是特别难,我一点ps都不会!”咳咳不要着急,karry的教学都是针对ps零基础的同学的,...

抖音这个特效太扎心,无数网友看着看着就哭了……

2078年的你,会是什么样子?最近,抖音上一款特效火了。它可以让你看到自己从现在到2078年的容貌变化,你可以一点点看着皱纹爬上眼角,白发布满双鬓。看着看着,很多网友就哭了。有人说,一辈子很长却也很短...

《爱情公寓》的特效有多好?这集花了300万,网友看不出来特效

对于有些电视剧来说,特效那可是相当重要的一个部分了。尤其是对那些科幻片和一些玄幻类的电视剧就更加了。一部剧或者是影片特效的好坏,直接就影响了这个作品的质量。首先就让我们来看一下电视剧孤芳不自赏吧!里面...

窗花剪纸、鸭头滤镜、潜艇王者…… 揭秘抖音特效那些事儿

更多往期「Byte漫来了」系列漫画,可点击阅读:...

原来影视剧中的“光头”全是这样弄的 观众被骗了许多年

不管是电影还是电视剧,都会有光头因为是剧情的需要,那么她们的光头会是怎么弄的呢?一直都以为那些演员都是要真的剃光头,看到这些照片后,才知道深深的被骗了许多年。在影视中,常常看到演员有光头的戏,她在外出...

这些特效给几分?春晚舞台显示技术盘点

[中关村在线投影机频道原创]从1983年开始,春晚成为国人大年三十晚上最期待的一场精神盛宴。直播式节目播出方式,各类表演大师云集舞台,相声小品歌舞欢聚一堂,这是很多家庭一年中最欢乐的时刻,而春晚,则是...

11 款六元秒杀特效对比,哪个赢了不知道,貂蝉一眼输了

已经上线了11款六元秒杀皮肤,其中部分是升级后的“伴生皮”,也就是英雄的首款皮肤,首周六元之后恢复原价488点券。无论是何种形式的六元皮肤,不得不说他们的质量都非常好,这11款皮肤的特效对...

《半条命2 RTX》上架Steam 光追特效+4K效果

《半条命2RTX》现已在Steam平台正式上架,这款屡获殊荣的游戏以其沉浸式的故事、惊险的战斗和令人费解的物理特性吸引了全球数百万玩家,游戏现已经新增全面光追、物理纹理以及增强的多边形效果进行了彻底...

微信又有新玩法?多种好看特效可选择,赶快安排上

今日分享:手机特效适用系统:安卓今天小雷又发现了一个好玩的东西,就是手机加上特效也太好看了吧!早上上班的时候发现同事打开微信后,微信页面居然下起了樱花雨。看了同事的微信页面小雷我真的觉得太好玩太好看了...

判若两人!揭秘好莱坞的特效化妆过程

好莱坞的特效化妆牛到什么程度呢?可以把美人化妆成丑八怪,把黑人化妆成白人,把年轻人化妆成老人,把女人化妆成男人,把男人化妆成女人,把普通人化妆成怪物、外星人甚至异鬼……来见识一下这些神奇化妆术的“变...

取消回复欢迎 发表评论: