【计算机视觉】图像轮廓与图像分割修复(凸包、图像的矩、分水岭算法、图像修补)

来源:《OpenCV3编程入门》,怀念毛星云大佬🕯️
说明:本系列重点关注各种图像轮廓与图像分割修复方法的原理、作用

图像轮廓与图像分割修复

虽然Canny之类的边缘检测算法可以根据像素之间的差异,检测出轮廓边界的像素,但是它并没有将轮廓作为一个整体。所以,下一步便是把这些边缘像素组装成轮廓。

寻找物体的凸包

凸包

凸包(Convex Hull)是一个计算几何(图形学)中常见的概念。简单來说, 给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边型,它是能包含点集中所有点的。理解物体形状或轮廓的一种比较有用的方法便是计算一个物体的凸包,然后计算其凸缺陷(convexity defects)。很多复杂物体的特性能很好地被这种缺陷表现出來。
如图8.9所示,我们用人手图来举例说明凸缺陷这一概念。手周围深色的线描画出了凸包,A到H被标出的区域是凸包的各个‘‘缺陷”。正如看到的,这些 凸度缺陷提供了手以及手状态的特征表现的方法。
在这里插入图片描述

使用多边形将轮廓包围

在实际应用,常常会有将检测到的轮廓用多边形表示出來的需求。本节就为大家讲解如何用多边形来表示出轮廓,或者说如何根裾轮廓提取出多边形。先让我们一起学AI用OpenCV创建包闱轮廓的多边形边界时会接触到的一些函数。
在这里插入图片描述

图像的矩

矩函数在图像分析中有着广泛的应用,如模式识别、目标分类、目标识別与方位估计、图像编码与重构等。一个从一幅数字图形中计算出來的矩集,通常描述了该图像形状的全局特征,并提供了大量的关于该图像不同类型的几何特性信息,比如大小、位置、方向及形状等。图像矩的这种特性描述能力被广泛地应用在各种图像处理、计算机视觉和机器人技术领域的目标识别与方位估计中。一阶矩与形状有关二阶矩显示曲线围绕直线平均值的扩展程度三阶矩则是关于平均值的对称性的测量。由二阶矩和三阶矩可以导出一组共7个不变矩。而不变矩是图像的统计特性,满足平移、伸缩、旋转均不变的不变性,在图像识别领域得到了广泛的应用。

分水岭算法

在许多实际运用中,我们需要分割图像,但无法从背景图像中获得有用信息。分水岭算法(watershedalgorithm)在这方面往往是非常有效的。此算法以将图像中的边缘转化成“山脉”,将均匀区域转化为“山谷”,这样有助于分割目标。
分水岭算法,是种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成"可以通过模拟浸入过程来说明:在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭。
分水岭的计算过程是一个迭代标注过程。分水岭比较经典的计算方法是由L.Vincent提出的。在该算法中,分水岭计算分两个步骤:一个是排序过程,一个是淹没过程。首先对每个像素的灰度级进行从低到髙的排序,然后在从低到高实现淹没的过程中,对每一个局部极小值在h阶高度的影响域采用先进先出(FIFO)结构进行判断及标注。分水岭变换得到的是输入图像的集水盆图像,集水盆之间的边界点,即为分水岭。显然,分水岭表示的是输入图像的极大值点
也就是说,分水岭算法首先计算灰度图像的梯度;这对图像中的“山谷”或没有纹理的“盆地”(亮度值低的点)的形成是很有效的,也对“山头”或图像中有主导线段的"山脉”(山脊对应的边缘)的形成有效。然后开始从用户指定点(或者算法得到点)开始持续"灌注"盆地直到这些区域连成一片。基于这样产生的标记就可以把区域合并到0—起,合并后的区域又通聚集的方式进行分割,好像图像被“填充”起来一样。

图像修补

在实际应用中.我们的图像常常会被噪声腐蚀,这些噪声或者是镜头上的灰尘或水滴,或者是旧照片的划痕,或者由于图像的部分本身己经损坏。而“图像修复”(Inpainting),就是妙手回春,解决这些问题的良方。图像修复技术简单来说,就是利用那些己经被破坏区域的边缘,即边缘的颜色和结构,繁殖和混合到损坏的图像中,以达到图像修补的目的。
示例图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/520932.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络8-注意力机制

注意力机制(Attention Mechanism)源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息。这种机制被称为注意力机制。举个例子来说,当我们观…

VS Code引入ECharts

Charts是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,提供了丰富的图表类型和交互能力。(摘自菜鸟教程) 下面我们来介绍一下VS Code引入ECharts的相关操作 检查电脑是否已经安装了Java语言的软件开发工具包 ECharts…

数据开发 - 面经(已OC) - 北京中海通

投递流程: 2023.12.28 Boss 打招呼 2024.1.3 约面 2024.1.4 上午面试 (手机端腾讯会议) 2024.1.5 上午 通知面试通过 腾讯会议手机端无法和录影机同时运行,录音无效,之后注意使用电脑面试 面试流程:首…

【Tauri】(4):整合Tauri和actix-web做本地大模型应用开发,可以实现session 登陆接口,完成页面展示,进入聊天界面

1,视频地址 https://www.bilibili.com/video/BV1GJ4m1Y7Aj/ 【Tauri】(4):整合Tauri和actix-web做本地大模型应用开发,可以实现session 登陆接口,完成页面展示,进入聊天界面 使用国内代理进行加…

基于pytest的证券清算系统功能测试工具开发

需求 1.造测试数据:根据测试需要,自动化构造各业务场景的中登清算数据与清算所需起来数据 2.测试清算系统功能: 自动化测试方案 工具设计 工具框架图 工具流程图 实现技术 python, pytest, allure, 多进程,mysql, 前端 效果 测…

容器+虚拟机双引擎,ZStack Edge云原生超融合打通业务最后一公里

企业数字化转型的焦点正在发生变化,云基础设施由资源到应用,数据中心从核心到边缘。面向云原生趋势,围绕应用升级,新一代超融合产品——云原生超融合应运而生。 云原生与边缘计算趋势催生云原生超融合 当前,企业客户…

微信小程序简单输入框界面(实现选择标签功能)

微信小程序简单输入框界面,实现选择标签功能、输入框字数计数的简单界面功能。 1、js代码: Page({/*** 页面的初始数据*/data: {count: 500,labelList: [{text: 开心,checked: true}, {text: 难受想哭,checked: true},{text: 快乐,checked: false}, {te…

如何确保OKR与公司的整体战略保持一致?

深入理解公司战略 首先,团队或个人需要全面、深入地理解公司的整体战略和目标。这包括了解公司的长期规划、市场定位、竞争优势以及核心竞争力等方面。只有对公司的战略有清晰的认识,才能确保OKR与之保持一致。 如何确保OKR与公司的整体战略保持一致&a…

Visual Studio如何进行类文件的管理(类文件的分离)

大家好: 衷心希望各位点赞。 您的问题请留在评论区,我会及时回答。 一、问题背景 实际开发中,类的声明放在头文件中,给程序员看类的成员和方法。比如:Dog.h(类的声明文件) 类的成员函数的具体…

基于 JavaAgent 代理技术实现 class 字节码插桩(bytebuddy)

先描述一个场景,生产有一个正在运行的java项目,以某 springboot-service.jar 为例,项目发布后发现了某个http接口响应较慢,此时你希望定位这个http接口执行过程中依次调用的几个主要方法的分别执行耗时,用来作为进一步…

开启AI绘画新纪元:让创意在指尖绽放

文章目录 一、了解AI绘画的基本原理二、选择合适的AI绘画工具三、掌握AI绘画的基本技巧四、借鉴与创新:从模仿到创作五、参与社区交流,共同成长《AI绘画教程:Midjourney使用方法与技巧从入门到精通》亮点推荐内容简介作者简介目录 在科技日新…

MySQL--优化(索引--聚簇和非聚簇索引)

MySQL–优化(索引–聚簇和非聚簇索引) 定位慢查询SQL执行计划索引 存储引擎索引底层数据结构聚簇和非聚簇索引索引创建原则索引失效场景 SQL优化经验 一、聚簇索引 聚簇索引:将数据存储与索引放到了一块,索引结构的叶子节点保存…