computer-vision - 为什么边缘检测滤波器总和为 0 而模糊滤波器总和为 1?

标签 computer-vision convolution lowpass-filter highpass-filter

我现在正在学习计算机视觉中的过滤器。我可以看到边缘检测的内核元素总和为 0,而模糊总和为 1。

我想知道,这与一个是高通,一个是低通滤波器有关系吗?是否有某种规则或解释?

提前致谢!

最佳答案

模糊滤镜必须保持平均图像强度。这就是它们的内核总和为 1 的原因。如果您查看它们的频率响应,您会发现零频分量(直流分量)为 1。该分量是内核的总和。为 1 表示在应用卷积时不修改图像的直流分量。是的,这是任何低通滤波器的特性。修改零频意味着您不会让低频保持不变。

你所说的边缘检测滤波器实际上是导数的估计器。由于导数的定义,它们加起来为零:任何一点的斜率都不取决于该点的高度。从函数(或图像)中添加或减去一个常数不会改变导数,I 和 I+1 的导数是相同的。因此,导数滤波器无法保留平均图像强度:您会得到 dI/dx 和 d(I+1)/dx 的不同结果,这是没有意义的。

拉普拉斯滤波器 ( not an edge detector ) 是广义二阶导数,适用与上述相同的推理。

关于computer-vision - 为什么边缘检测滤波器总和为 0 而模糊滤波器总和为 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68078998/

相关文章:

java - 如何在 Android 中使用 Opencv 检测非静止背景中物体的存在?

python - 如何在OpenCV2中将float32图片写入视频文件?

conv-neural-network - CNN : input stride vs. 输出步幅

complexity-theory - 卷积的计算复杂度

python - 对极几何姿态估计 : Epipolar lines look good but wrong pose

c++ - 为什么 OpenCV 的级联分类器检测会给出太大的输出?

python - 具有不同滤波器尺寸的 tensorflow 卷积

android - 如何在android中获取平滑的方向数据

matlab - 在 matlab 中实现低通 Daubechies 小波滤波器