为什么卷积与内核有效?

我不明白有人会想出一个简单的3×3矩阵叫做内核,因此当应用于图像时,它会产生一些非常棒的效果.示例: http://en.wikipedia.org/wiki/Kernel_(image_processing).它为什么有效?人们是如何提出这些内核的(反复试验?)?是否有可能证明它将始终适用于所有图像?

解决方法

直观地,图像I与核K的卷积产生新图像,该图像通过计算由K中的权重加权的所有附近像素的每个像素的加权和形成.即使您不知道什么是卷积是的,这个想法看起来仍然很合理.您可以使用它来模糊效果(通过使用附近像素的高斯加权)或锐化边缘(通过从其邻居中减去每个像素并在其他任何地方减去重量.)事实上,如果您知道您需要做所有在这些操作中,尝试编写一个函数给出I和K做了附近像素的加权和,并尝试尽可能积极地优化该函数(因为你可能会使用它很多)是有意义的.

为了从那里得到卷积的想法,你可能需要有傅立叶变换和傅立叶级数的背景.卷积在这个领域是一个完全自然的想法 – 如果你计算两个图像的傅立叶变换并将变换相乘,你最终会计算卷积的变换.数学家已经做了一段时间的工作,可能是通过回答一个非常自然的问题“什么函数具有由另外两个傅立叶变换的乘积定义的傅立叶变换?”,从那里发现连接只是时间问题. .由于傅里叶变换已广泛用于计算(例如,在网络中的信号处理中),我猜测有傅立叶系列背景的人注意到他们需要将核K应用于图像I,然后认识到这是在频率空间中完成时更简单,计算效率更高.

老实说,我不知道真实的历史是什么,但这是一个非常合理的解释.

希望这可以帮助!

相关文章

首先GDB是类unix系统下一个优秀的调试工具, 当然作为debug代...
1. C语言定义1个数组的时候, 必须同时指定它的长度.例如:int...
C++的auto关键字在C+⬑新标准出来之前基本...
const关键字是用于定义一个不该被改变的对象,它的作用是告诉...
文章浏览阅读315次。之前用C语言编过链表,这几天突然想用C+...
文章浏览阅读219次。碰到问题就要记录下来,防止遗忘吧。文章...