如何在OpenCV Python中检测和绘制FAST特征点?
FAST (来自加速段测试的特征)是一种高速角点检测算法。我们使用 FAST 算法检测图像中的特征。我们首先使用 cv2.FastFeatureDetector_create() 创建 FAST 对象。然后使用 fast.detect() 检测特征点,其中fast是所创建的 FAST 对象。要绘制特征点,我们使用 cv2.drawKeypoints() 。
步骤
为了使用FAST特征检测器在输入图像中检测和绘制特征点,您可以按照以下步骤进行。
- 导入所需的库 OpenCV 和 NumPy 。确保您已经安装了它们。
-
使用 cv2.imread() 方法读取输入图像。指定图像的完整路径。使用 cv2.cvtColor() 方法将输入图像转换为灰度图像。
-
使用默认值初始化 FAST 对象 fast=cv2.FastFeatureDetector_create() 。您可以选择使用 fast.setNonmaxSuppression(0) 将非最大抑制设置为False。
-
在灰度图像中检测特征点。使用 fast.detect(gray, None) 。它返回关键点kp。
-
绘制检测到的关键点 kp 在图像上使用 cv2.drawKeypoints() 函数。
-
显示带有绘制出的关键点的图像。
让我们看看使用FAST特征检测器检测和绘制输入图像中的特征点的示例。
输入图像
我们将使用以下图像作为示例中的输入文件。
示例
在此程序中,我们使用FAST算法检测和绘制特征点。默认的 nonmaxSuppression 设置为 True 。
输出
执行后,将产生以下 输出 −
我们得到了以下窗口,显示了在其上绘制了关键点的图像 −
示例
在此程序中,我们使用 FAST 算法检测和绘制特征点。我们将 nonmaxSuppression 设置为 False 。
输出结果
执行后,会产生以下 输出 :
我们得到以下窗口,显示了绘制了关键点的图像−
我们注意到,当 nonmaxSuppression 为 False 时,检测到的总关键点数比 nonmaxSuppression 为 True 时更多。