图像处理——Harris角点检测算法原理

@author: lenovo
“”"

‘’’
Harris角点检测
‘’’
import cv2
import numpy as np

img = cv2.imread(’./image/cali.bmp’)
img = cv2.resize(img,dsize=(600,400))
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)
#角点检测 第三个参数为角点检测的敏感度,其值必须介于3~31之间的奇数
dst = cv2.cornerHarris(gray,3,23,0.04)
print(dst.shape) #(400, 600)
img[dst>0.01*dst.max()] = [0,0,255]
cv2.imshow(’’,img)
cv2.waitKey(0)
cv2.destroyAllWindows()

复制代码

运行结果如下:

图像处理——Harris角点检测算法原理_第1张图片

如果我们把第三个参数改为3:,可以看到:

图像处理——Harris角点检测算法原理_第2张图片

回到顶部

 四 Harris检测原理

上面我们已经通过实例演示了Harris检测的效果,相信你对Harris角点检测已经有了初步的认识。这里我将带你深入了解Harris角点检测的原理。

我们先来看一幅图片,了解一下什么是角点?

图像处理——Harris角点检测算法原理_第3张图片

上图中E,F中的角我们通常称作角点(corner points),他们具有以下特征:

  • 轮廓之间的交点;
  • 对于同一场景,即使视角发生变化,通常具备稳定性质的特征;
  • 该点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较大变化;

 图像处理——Harris角点检测算法原理_第4张图片

harris特征角最早在paper A Combined Corner and Edge Detector中被Chris Harris & Mike Stephens提出。

Harris角点检测的基本思想:算法基本思想是使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑动后两种情况,窗口中的像素灰度变化程度,如果存在任意方向上的滑动,都有着较大灰度变化,那么我们可以认为该窗口中存在角点。

图像处理——Harris角点检测算法原理_第5张图片

1、灰度变化描述

 当窗口发生[u,v][u,v]

Iy¯=i=

你可能感兴趣的:(图像处理)