OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记

第八章

1. 查找并绘制轮廓

(1) 寻找轮廓:findContours() 函数

注:
在这里插入图片描述
(2) 绘制轮廓:drawContours()函数
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第1张图片
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第2张图片

 层次结构信息:https://blog.csdn.net/qq_36387683/article/details/80472043

2. 寻找物体的凸包

(1) 凸包概念:

(2) 寻找凸包函数:convexHull()
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第3张图片

3. 根据轮廓提取多边形

(1) 返回外部矩阵边界:boundingRect() 函数
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第4张图片
(2) 寻找最小包围矩阵:minAreaRect()函数

OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第5张图片
(3) 寻找最小包围圆形:minEnclosingCiecle()函数
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第6张图片
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第7张图片
(4) 用椭圆拟合二维点集:fitEllipse()函数
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第8张图片
(5) 逼近多边形曲线:approxPolyDP()函数
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第9张图片

 注:轮廓vertor容器contours[i]应该是包含了很多坐标信息,比如一个contours[0]就是一个轮廓的二维坐标点集

4. 图像的矩:其实就是一个综合特性的描述子(满足平移,伸缩,旋转的不变性),从而可以计算长度和面积

(1) opencv中计算图像的矩
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第10张图片
(2) 矩的计算函数:moments()–可以由此函数的返回值作为参数,通过contourArea()和arcLength()函数来计算面积和长度
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第11张图片
(3) 计算轮廓面积:contourArea()
(4) 计算轮廓长度:arcLength()函数
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第12张图片
在这里插入图片描述
opencv里的Moments成员变量的理解:https://blog.csdn.net/ZZS_SZZ/article/details/84778584

(5) 分水岭算法
怎么感觉"漫水填充算法"和”分水岭填充算法"的核心思想差不多。
I. 漫水填充算法(主要是选种子点,然后设定阈值,自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色):https://blog.csdn.net/qq_31531635/article/details/73337887
II. 掩模(就是遮掉不需要的部分):用选定的图像、图形或物体,对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。

(1)watershed()函数
OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第13张图片
6.图像修补

在这里插入图片描述
在这里插入图片描述
(1)图像修补函数:inpaint() 函数

OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第14张图片

总结

OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记_第15张图片

你可能感兴趣的:(OPENCV3编程入门--第八章(图像轮廓与图像分割,修复)学习笔记)