在这篇Python OpenCV文章中,我将向您展示如何使用CornerHarris在OpenCV中检测角落。基本上在本文中,我们使用的是CornerHarris算法。

以下是如何用CornerHarris在OpenCV中检测角点的完整代码

import    cv2
import    numpy    as    np
img  =    cv2.imread('www.linuxmi.com.png')
gray =    cv2.cvtColor(img,    cv2.COLOR_BGR2GRAY)
gray =    np.float32(gray)
dst  =    cv2.cornerHarris(gray,    2,    3,    0.04)
img[dst>0.01 *    dst.max()]   =    [0,    0,    255]

cv2.imshow("HarrisCorner Detection",    img)
cv2.waitKey()
cv2.destroyAllWindows()

在本文中,我使用这个图像

在这段代码中,首先我们已经加载了图像,也对图像进行了转换,确保你已经将图像添加到你的工作目录中。

img = cv2.imread(‘www.linuxmi.com.png’)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)

这就是我们的CornerHarris算法

为此,OpenCV使用了函数cv2.cornerHarris()。参数如下:

  • img – 数据类型为 float32 的输入图像。
  • blockSize – 角点检测中要考虑的领域大小。
  • ksize – Sobel 求导中使用的窗口大小
  • k – Harris 角点检测方程中的自由参数,取值参数为 [0,04,0.06]

dst = cv2.cornerHarris(gray, 2, 3, 0.04)

现在运行完整的代码,结果如下:

发表评论

电子邮件地址不会被公开。 必填项已用*标注