python opencv3 cornerHarris 角点检测
git:https://github.com/linyi0604/Computer-Vision
角点也是处在一个无论框框往哪边移动 框框内像素值都会变化很大的情况而定下来的点
如果框框水平方向上移动 像素值是不会有什么太大的变化的 如果是垂直方向上移动那么就会变化很大 这种一般称为边缘区域
无论是水平 还是垂直的方向移动 都不会对框框内像素造成很大的变化,是内部区域
1 # coding:utf-8
2
3 import cv2
4 import numpy as np
5
6 img = cv2.imread("../data/chess1.jpg")
7 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
8 gray = np.float32(gray)
9 # 角点检测
10 dst = cv2.cornerHarris(gray, 2, 23, 0.04)
11 """
12 角点也是处在一个无论框框往哪边移动 框框内像素值都会变化很大的情况而定下来的点
13 cv2.cornerHarris()
14 img - 数据类型为 float32 的输入图像。
15 blockSize - 角点检测中要考虑的领域大小。
16 ksize - Sobel 求导中使用的窗口大小
17 k - Harris 角点检测方程中的自由参数,取值参数为 [0,04,0.06].
18 """
19 img[dst > 0.01 * dst.max()] = (0, 0, 255)
20
21 cv2.imshow("corners", img)
22 cv2.waitKey()
23 cv2.destroyAllWindows()