原书PDF链接:
Computer Vision: Algorithms and Applications, 2nd ed.
第二章:图像形成
2.1 几何图元与变换
【计算机视觉:算法和应用】第二章:图像形成——2.1 几何图元与变换_Lu.马夋的博客-CSDN博客
2.2 相机辐射成像
【计算机视觉:算法和应用】第二章:图像形成——2.2相机辐射成像-CSDN博客
2.3 数码相机
【计算机视觉:算法和应用】第二章:图像形成——2.3数码相机-CSDN博客
第三章:图像处理
3.1 点处理
【计算机视觉:算法和应用】第三章:图像处理——3.1点处理-CSDN博客
3.2 线性滤波
局部自适应直方图均衡是邻域操作或局部操作的一个例子,其使用给定像素附近的像素值集合来决定最终的输出值(图3.10)。除了实施局部色调调整,邻域操作也可以用来图像滤波增加软模糊,锐化细节,突出边缘或移除噪声(图3.11b-d)。在本节,我们将学习线性滤波操作符,涉及小邻域中像素的固定加权组合。在3.3节我们学习非线性操作符例如形态滤波和距离转换。
最常用的邻域操作符的类型是线性滤波,输出像素的值是小邻域N内像素值的加权和(图3.10),
权重核或掩码h(k,l)中的项通常称为滤波系数。上述相关算子可以更紧凑地标注为
这个公式的一个常见变体是
如果f中偏移量的符号被反转,这被称为卷积算子,
而h称为脉冲响应函数。之所以是这个名字是因为,核函数h核脉冲信号δ(i,j)(除原点外处处为0的图像)进行卷积重新生成其本身,h*δ=h,而相关性产生反射信号。(你可以自己尝试证明这一点)。
事实上,式3.14可以解释为偏移脉冲响应函数h(i-k,j-l)乘以输入像素值f(k,l)的重叠(相加)。卷积还有其他优异的属性,例如,它满足交换律和结合律。同时,两个卷积图像的傅里叶变换式他们各自傅里叶变换的乘积(3.4节)。
相关和卷积都是线性位移不变(LSI)操作符,其遵循叠加原理(3.5),
以及位移不变原理,
这意味着移动信号与应用算子交换(◦代表LSI算子)。另一种考虑位移不变性的方式是操作符“在所有地方表现一致”。
偶尔,也可以使用相关性或卷积的位移变化版本,如,
其中h(k,l;i,j)是像素(i,j)位置的卷积核。例如,由于可变的深度相关的离焦,一种空间变化核可以用来对图像中的模糊进行建模。
相关性和卷积都可以写作一个矩阵向量乘法,如果我们首先将二维图像f(i,j)和g(i,j)转换为有序向量f和g,
其中(稀疏)H包含了卷积核。图3.12展示了一维卷积如何以矩阵向量的形式表示。
填充(边界效应)
精明的读者会注意到,图3.10中所示的相关性产生的结果比原始图像要小,这在许多应用程序中可能并不可取。这是因为典型的相关和卷积操作的邻域超出了在边缘附近的图像边界,因此过滤后的图像受到边界效应。
为了解决这一问题,已经开发了许多不同的填充或扩展模式用于邻域操作(图3.13):
- zero:将超出源图像的所有像素设置为0(对于alpha-matted剪切下的图像来说是一个好的选择)
- constant(边界颜色):将超出源图像的所有像素设置为一个特定的边界值;
- clamp(复制或clamp到边缘):不断重复边缘像素;
- (循环)wrap(重复或平铺): 在“环形”配置中“环绕”图像;
- mirror:在图像边缘反射像素;
- extent:通过从边缘像素值中减去信号的镜像版本来扩展信号。
在计算机图形学术语中,这些机制称之为wrapping mode(OpenGL)或texture addressing mode(Direct3D)。这些模式的公式留给读者(练习3.9)。
图3.13展示了用上述机制对图像进行填充并对填充后的图像进行模糊的效果。正如你所见,zero填充使边缘变暗,clamp(复制)填充向内传播边缘值,mirror(反射)填充保留了边缘附近的颜色。extension填充(没有展示)使边缘像素固定(在模糊期间)。
填充的另一种法师是对zero填充的RGBA图像进行模糊,然后将得到的图像通过alpha值进行分离来消除变暗效应。结果会变得很好,正如图3.13中标准化零图像中所见。
3.2.1可分离滤波
进行一次卷积处理每像素需要K²(乘-加)次操作,其中K是卷积核的尺寸(宽或高),例如,图3.14a中的箱式滤波器。在许多情况下,这种操作的速度能够通过一个一维水平卷积后接一维垂直卷积进行加速,每像素总共需要2K次操作。这样的卷积核称之为可分离卷积。
很容易证明,与水平核h和垂直核v的连续卷积对应的二维核K是两个核的外积,
(见图3.14中的例子)。由于效率的增长,用于计算机视觉应用的卷积核的设计通常由它们的可分离性影响。
我们如何能够分辨给定的核K是否确实是可分离的呢?这通常可以通过检验或观察核的解析形式来实现。一种更直接的方法是将二维核视为二维的矩阵K,取其奇异值分解(SVD),
(见附录A.1.1查看SVD的定义)。如果只有第一个奇异值σ0是非零的,那么核是可分离的,且和提供了垂直和水平核。例如,高斯核的拉普拉斯变换可以当作两个可分离滤波器的核使用。
那如果你的核不可分离但是你仍想要以一种更快的方式使用它呢?Perona(首先提出了核可分离性和SVD之间关联的人)建议在(3.21)系列中使用更多项,即对一些可分离的卷积进行求和。是否值得这样做取决于K的相对大小和显著奇异值的数量,以及其他考虑因素,如缓存一致性和内存局部性。
3.2.2线性滤波实例
既然我们已经描述了进行线性滤波的过程,下面让我们来看一些常用的滤波器。
最简单的滤波器是移动平均或箱式滤波器,其仅仅是将K×K窗口内的像素值进行平均。这等同于用一个全为1的核对图像进行卷积,然后缩放(图3.14a)。对于大的核,更有效的实现方式是在每一个滑动方向上对窗口进行滑动(在可分离滤波器中),并从运行的总和中添加最新的像素,间距最老的像素。这与summed area tables的概念相关,我们会简要的描述。
通过将图像与分段线性“帐篷”函数(也称为Bartlett滤波器)进行可分性卷积,可以得到更平滑的图像。图3.14b展示了这种滤波器的3×3的版本,称之为双线性核,因为它是两个线性(一阶)样条的外积(见3.5.2节)。
将线性帐篷函数与其自身进行卷积会产生立方近似样条,在Burt和Adelson的拉普拉斯金字塔表示(3.5节)中称之为“高斯”核(图3.14c)。注意到近似高斯核也可以通过箱式滤波的迭代卷积获得。在滤波器需要旋转对称的应用程序中,应该使用仔细调整的采样高斯版本(练习3.11)。
刚刚我们讨论的核全都是模糊(平滑)或低通核,因为它们可以通过更低的频率同时减少高频。它们这样做有什么好处呢?在3.4节中,我们使用频率-空间傅里叶分析来研究这些滤波器的确切的频率响应。我们也介绍sinc((sinx)/x)滤波器,进行理想低通滤波。
在实践当中,平滑核也经常用来减少高频噪声。后面我们会有关于使用平滑的变体来移除噪声的更多的介绍(见3.3.1,3.4节,以及第四章和第五章)。
令人惊奇地是,使用一种称为unsharp masking的处理,平滑核也能够用来锐化图像。因为模糊图像会减少高频细节,在原始和模糊后的图像之间添加某些不同会使其更加尖锐,
事实上,在数码摄影出现之前,这是锐化暗室中的图像的标准方式:通过失焦从原始底片创建一个模糊的(“正”)底片,在打印最终图像前将两个底片叠加在一起,该图像对应于
这不再是一个线性滤波但是它仍很有效。
线性滤波可以用作边缘提取(7.2节)和兴趣点提取(7.1节)算法的预处理阶段。图3.14d展示了一个简单的3×3边缘提取器叫作Sobel操作符,是水平中心差(之所以这么叫是因为水平导数以像素为中心)和垂直tent滤波的可分离组合。正如你看到的核下方的图像,这个滤波器有效地强调了垂直边缘。
简单的角探测器(图3.14e)寻找连续的水平和垂直二阶导数。正如你所见,其不仅仅对正方体的角产生响应,也对对角线边缘产生响应。更好的角探测器,或至少是旋转不变的兴趣点探测器,将在7.1节中介绍。文章来源:https://www.toymoban.com/news/detail-770426.html
【持续更新,仅供学习参考。部分专业术语可能翻译有误,欢迎大家批评指正】文章来源地址https://www.toymoban.com/news/detail-770426.html
到了这里,关于【计算机视觉:算法和应用】第三章:图像处理——3.2线性滤波的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!