我们之所以在进行图像分析的过程中要进行检测脚点,是因为角点更具有特性
下面我们先向大家介绍一下Harris所需要用到的函数
cv2.cornerHarris()
img:数据类型为float32的输入图像
blcokSize:角点检测中指定区域的大小
ksize:Sobel求导中使用的窗口大小
k:取值参数为[0,04,0.06]
之后我们向大家展示一下相关的代码块
img = cv2.imread('E:\Anaconda\Anaconda3.8\JJiaodian.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)#对应的顺序img,blocksize,sobel,k
print('dst.shape',dst.shape)
打印出的图像shape值如下所示:
BGR2GRAY转化为但一通道
img[dst>0.0001*dst.max()]=[0,0,255] #角点检测不设固定值,与最大值(及角点)进行比较
cv2.imshow('dst',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
0.0001是指当测到的角点值大于角点最大值的0.0001倍时视为角点保存下来。
得到的结果如图所示:
下一章向大家介绍特征匹配算法