cv2.cornerHarris()
- img:数据类型为float32的输入图像
- blockSize: 角点检测中指定区域的大小
- ksize: sobel求导中使用的窗口大小
- k:取值参数为[0.04,0.06]
chessboard.jpg
import cv2
import numpy as np
img = cv2.imread('chessboard.jpg')
print('img.shape',img.shape)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#gray = np.float32(gray)
dst = cv2.cornerHarris(gray,2,3,0.04)
print('dest.shape:',dst.shape)
输出结果:
img.shape (512, 512, 3) dest.shape: (512, 512)
img[dst>0.01*dst.max()]=[0,0,255]
cv2.imshow('dst',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
ps:如果想改变检测角点范围的大小,可以改变参数0.01,变大则会检测的点会少。