在这篇文章中,我将更多地阐述图像是函数的概念,以及我们如何对其进行操作以获得期望的结果。
关于图像的运算
与所有函数一样,可以对图像进行操作,以获得另一个图像或任何其他所需的结果。对图像的操作可以分为3种,
点操作是输出图像中每个像素的值仅取决于输入图像中相同位置的像素的操作。
每像素复杂度=常量
局部操作是这样的操作,其中输出图像中每个像素处的值取决于输入图像中相同坐标的p×p邻域。
每像素复杂度为p²。
在上图中,p=3,因为它是一个3×3过滤。
全局运算是指图像中任意点的输出值取决于输入图像中的所有像素的操作。因此,如果图像的大小为N x N。
每像素复杂度将为N²。
图像过滤器
图像过滤涉及窗口操作的应用,这些操作执行有用的功能,如噪声去除和图像增强。1
你肯定有过给图像添加滤镜的经验,有时你想要去除模糊,有时你想要检测人脸。
图像过滤器是帮助您完成这些操作的基础,它们是如何工作的?通过卷积或相关来应用图像过滤是局部操作。
当应用图像过滤时,我们基本上基于输入坐标的局部邻域的某些函数来修改输出中的每个图像像素。
接受范围:
在上面的GIF中,每个像素的接受场是输入图像中考虑的窗口或邻域,要计算输出像素的值,这是基于一种操作。
我们应用的操作是定义图像过滤的操作,
中值过滤在去除图像中的盐和胡椒噪声方面很有用,在图像中我们会得到随机的黑白斑点?多么?
中位数过滤取一个接受域,以一组像素的形式放入,排序,取中心值为中位数。黑点和白点具有极值,在排序时最终会出现任何一个极值。
中值将替换输出图像中不需要的黑色或白色像素。
但是,在像脸部的头发和牙齿这样的地方,相邻的像素也具有相同的高或低值,所以过滤的中位数基本上对图像的这些区域没有影响。
中位数过滤是一种非线性过滤,它不考虑每个像素在接受野中的位置。
过滤器还可以执行移动平均等操作。
你认为它有什么作用?
这就是怎么回事,它弄脏了图像,把它弄平了?H(u,v)是什么?这就是我说的过滤。
将此过滤应用于输入图像以获得所需图像。对于每个输出像素,计算过滤和接受野之间的点积,并将点积的值放入输出像素。
意思是过滤是一个线性过滤,我可以把它表示成一个函数。
中位数过滤,我做不到。
大多数滤波器都是线性的,可以用矩阵表示。
所以,这里有3个实体在起作用,输入图像,线性过滤,输出像素。
希望我把这一点说通了吧?
好的,现在在视觉上,我们可以说我们像滑动窗口一样在图像上移动过滤以获得输出,但是,计算机无法理解这一点!
我们必须对输入图像和过滤执行名为互相关的操作。
2k+1=内核大小(以平均过滤为例,k=1)
因此,对于坐标(i,j)的每个像素,u和v值的范围从-k到+k,因此如果过滤的大小为3×3,则k值将为1。
为什么会有均匀权重互相关这个名称呢?这是因为在计算输出时,感受场的每个像素都被赋予同等的重要性,因此上面讨论的平均值过滤就是一个很好的例子。
在我们的边缘检测示例中,看看感受场的某些部分是如何获得较低重要性的,而另一些部分是如何收到较高重要性的。这实际上很有价值,这里是非均匀加权的互相关函数。
交叉关联是有用的,但说到身份,问题是他们没有,如果你问我,有没有一个权重不统一的过滤,当我给出脉冲信号作为输入时,它会给我过滤的价值。
不,没有,除非过滤在水平和垂直上都是对称的,否则是不可能的。这是因为,互相关函数本质上是沿着y轴在输出图像上对过滤进行双翻转,这使得输出与实际的过滤有所不同。
解决这个问题的最简单的方法可能是超级简单的,在将过滤应用于脉冲信号之前,将其反向翻转两次。现在,我的朋友们是卷积运算。
这基本上是卷积和相关之间的唯一区别。如果使用的过滤是对称的,它甚至不会做任何改变。
这两项业务都是跨国不变的。这意味着,无论图像的对象如何移动,它都会给出相同的响应,只是改变了其效果在输出上的位置。
如果您有兴趣了解如何在深度学习中使用卷积运算,请查看此博客,
卷积神经网络Convolutional Neural Networks
感谢您的阅读。
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/08/10/%e5%9b%be%e5%83%8f%e4%b8%8a%e7%9a%84%e8%bf%87%e6%bb%a4%e5%99%a8%e5%92%8c%e6%93%8d%e4%bd%9c/