在这篇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)
现在运行完整的代码,结果如下: