OpenCV For Python系列教程(第二部分)

发布时间:2023-04-21 09:30


OpenCV For Python系列教程(第一部分)


2022-02-27更新:

OpenCV For Python入门46 Numpy实现傅里叶变换

OpenCV For Python入门47 OpenCV实现傅里叶变换

OpenCV For Python入门48 模板匹配基础

2022-03-01更新:

OpenCV For Python入门49 多模板匹配

OpenCV For Python入门50 霍夫变换之直线变换(一)

2022-03-06更新:

OpenCV For Python入门51 霍夫变换之直线变换(二)

OpenCV For Python入门52 霍夫圆环变换

OpenCV For Python入门53 分水岭算法原理

OpenCV For Python入门54 分水岭算法辅助函数

OpenCV For Python入门55 分水岭算法实现案例


OpenCV For Python入门46 Numpy实现傅里叶变换

Numpy模块中的fft2()函数可以实现图像的傅里叶变换。本节还介绍如何高通滤波。


OpenCV For Python入门47 OpenCV实现傅里叶变换

OpenCV提供了函数cv2.dft()和cv2.idft()来实现傅里叶变换和逆傅里叶变换。


OpenCV For Python入门48 模板匹配基础

在当前图像A内寻找与图像B最相似的部分。A为输入图像,B为模板图像。

操作方法是将模板B在图像A滑动,遍历所有像素已完成匹配。


OpenCV For Python入门49 多模板匹配

本节主要介绍如何获取多模板匹配的结果。

有些情况下要搜索的模板图像,很可能在输入图像类出现了多次,这时就需要找出多个匹配结果。而函数cv2.minMaxLoc()仅仅能找出最值,无法给出所有匹配区域的位置信息。所以,想要匹配多个结果,使用函数cv2.minMaxLoc()是无法实现的,需要利用阈值进行处理。下面将分步骤进行介绍。


OpenCV For Python入门50 霍夫变换之直线变换(一)

霍夫直线变换用来寻找图像内的直线。本节简要介绍霍夫变换的原理。

OpenCV提供了函数cv2.HoughLines()和cv2.HouLinesP()用来实现霍夫直线变换。本届主要介绍基本原理。函数的用法将在下一节讲解。


OpenCV For Python入门51 霍夫变换之直线变换(二)

本节介绍cv2.HoughLines()用来实现霍夫,以及改进版函数cv2.HoughLinesP()。


OpenCV For Python入门52 霍夫圆环变换

能用一个参数方程表示的对象,都适合霍夫变换来检测。本节介绍如何检测圆环。

在霍夫圆变换中,需要考虑圆半径和圆心(x坐标,y坐标)三个参数,在OpenCV中,策略是经过两轮筛选:

第一轮筛选找出可能存在的圆的位置(圆心)
第二轮筛选再根据第一轮的结果筛选出半径大小


OpenCV For Python入门53 分水岭算法原理

分水岭(Watershed)是基于地理形态的分析的图像分割算法,模仿地理结构(比如山川、沟壑,盆地)来实现对不同物体的分类。

分水岭算法中会用到一个重要的概念——测地线距离。


OpenCV For Python入门54 分水岭算法辅助函数

函数cv2.watershed()实现分水岭算法。在具体实现过程中,还需要借助其他形态学函数来辅助。

使用分水岭算法进行图像分割时,基本步骤为:

1、通过形态学开运算,对原始图像O去噪。

2、通过腐蚀操作获取确定背景B,需要注意,这里得到原始图像 - 确定背景即可。

3、利用距离变换函数cv2.diatanceTransform()对原始图像进行运算,并对其进行阈值处理,得到确定前景F。

4、计算未知区域UN(UN = O - B - F)。

5、利用函数cv2.connectComponents()对原始图像O进行标注

6、对函数cv2.connectComponents()的标注结果进行修正

7、使用分水岭函数完成对图像的分割


OpenCV For Python入门55 分水岭算法实现案例

本节介绍一下使用分水岭算法的实例。


还将持续更新,敬请期待

欢迎访问我的个人博客:

陶小桃Blog

以及我的资源导航博客:

多啦A桃 | 资源导航

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号