Harris角点检测的核心掩模

时间:2018-05-12 18:03:35

标签: image-processing kernel convolution corner-detection point-of-interest

// Convolution with horizontal differentiation kernel mask
float h = ((src[-srcStride + 1] + src[+1] + src[srcStride + 1]) -
          (src[-srcStride - 1] + src[-1] + src[srcStride - 1])) * 0.166666667f;

// Convolution vertical differentiation kernel mask
float v = ((src[+srcStride - 1] + src[+srcStride] + src[+srcStride + 1]) -
          (src[-srcStride - 1] + src[-srcStride] + src[-srcStride + 1])) * 0.166666667f;

我需要在哈里斯角上实现的这种内核掩码的理论。那是什么样的内核掩码?是prewitt还是任何不同的内核?我很难找到一篇可以解释内核掩码的论文

1 个答案:

答案 0 :(得分:0)

确实是Prewitt operator

在索引到src(输入图像)之后,使用srcStride要跳过的数组元素的数量来寻址y-direciton中的下一个邻居,可以看到{{1} }按以下顺序从h获取元素并使用以下权重:

src

这对应于使用以下内核的卷积(请记住卷积镜像内核):

-1/6   0   1/6
-1/6   0   1/6
-1/6   0   1/6

这再次对应两个卷积

| 1  0  -1 |
| 1  0  -1 | / 6
| 1  0  -1 |

即,它水平应用微分滤波器(中心差),垂直应用均匀平滑滤波器。

请注意,均匀平滑滤波器具有一些非常差的质量(它会翻转某些频率成分的符号,并且通常很难平滑),因此使用Sobel's operator总是更好(使用三角形平滑滤波器)或最好是Gaussian gradients