首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Harris角点检测中的核掩码

Harris角点检测中的核掩码
EN

Stack Overflow用户
提问于 2018-05-13 02:03:35
回答 1查看 693关注 0票数 0
代码语言:javascript
复制
// 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;

我需要在harris角上实现的这种内核掩码的理论。这是什么类型的内核掩码?这是prewitt还是其他内核?我很难找到一篇能解释内核掩码论文

EN

回答 1

Stack Overflow用户

发布于 2018-05-13 13:34:12

这确实是Prewitt operator

在索引到src (输入图像)之后,使用srcStride跳过的数组元素的数量来寻址y方向上的下一个邻居,可以看到h以以下顺序和以下权重从src中获取元素:

代码语言:javascript
复制
-1/6   0   1/6
-1/6   0   1/6
-1/6   0   1/6

这对应于与以下内核的卷积(请记住,卷积是内核的镜像):

代码语言:javascript
复制
| 1  0  -1 |
| 1  0  -1 | / 6
| 1  0  -1 |

这再次对应于两个卷积

代码语言:javascript
复制
h = src * ( [1 0 -1] / 2 ) * ( [1 1 1]^T / 3 )

也就是说,它在水平方向应用导数滤波器(中心差分),在垂直方向应用均匀平滑滤波器。

请注意,均匀平滑滤波器具有一些非常差的质量(它将反转某些频率分量的符号,并且通常在平滑方面做得很差),因此最好使用Sobel's operator (使用三角形平滑滤波器)或Gaussian gradients

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50309237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档