在灰度变化平缓区域,窗口内像素积分近似保持不变
在边缘区域,边缘方向:灰度积分近似不变,其余任意方向:剧烈变化
在角点处,任意方向均剧烈变化

定义灰度积分变化:

如u,v很小,则有:

其中
注意到E是一个二次型,即:

和
是椭圆的长短轴
当λ1,λ2都比较小时,点(x,y)处于灰度变化平缓区域;
当λ1>>λ2,或者λ1<<λ2时,点(x,y)为边界像素;
当λ1,λ2都比较大时,且近似相等时,点(x,y)为角点;

使用角点响应函数:

当R接近于零时,处于灰度变化平缓区域;
当R<0时,点为边界像素;
当R>0时,点为角点
CV_EXPORTS_W void cornerHarris( InputArray src, OutputArray dst, int blockSize,
int ksize, double k,
int borderType = BORDER_DEFAULT );
src,输入图像,即源图像,填Mat类的对象即可,且需为单通道8位或者浮点型图像。
dst,函数调用后的运算结果存在这里,即这个参数用于存放Harris角点检测的输出结果,和源图片有一样的尺寸和类型。
blockSize,表示邻域的大小。
ksize,表示Sobel()算子的孔径大小。
k,Harris参数。
borderType,图像像素的边界模式,注意它有默认值BORDER_DEFAULT。

3万+

被折叠的 条评论
为什么被折叠?



