デジタル画像処理 [3] 画像空間フィルタリング - スムージング

前回の記事では、画像のグレースケール変換について説明しました。これは主に、画像のコントラストと明るさを高めるための単一点処理で使用されます。今回は、ピクセルの周囲のピクセル情報を使用して画像のグレースケールを処理する、画像の空間フィルター処理について紹介します。処理の主な目的は次のとおりです。

  1. ノイズ除去: イメージング処理中に、ハードウェア センサーやイメージング環境要因により、カメラによって取得された画像にノイズが含まれることがよくあります。ノイズを低減するには、適切な画像フィルタリング アルゴリズムを設計する必要があります。

  1. 特徴抽出: 画像から特徴、線特徴、またはエッジ特徴を抽出するには、これらに対応する適切なフィルターが必要です。

  1. 画像の強調: 一部のアプリケーションでは、画像のエッジをより鮮明にするために、シャープ化などの画像の細部を強調する必要があります。

畳み込みフィルタ

特定のアルゴリズムについて説明する前に、最も基本的な畳み込みフィルターの 1 つを見てみましょう。ソース入力イメージを例にとると、3*3 コンボリューション カーネルもありますが、入力イメージは通常、コンボリューション カーネルのサイズよりもはるかに大きくなります。コンボリューションカーネルのサイズは必ずしも 3*3 である必要はなく、5*5、7*7 にすることも可能です。元の画像とコンボリューション カーネルを使用すると、3*3 コンボリューション カーネルの場合、[0,0] 位置を直接カバーし、中央の [1,1] 位置でピクセルのコンボリューションを開始するのが簡単です。コンボリューションの要素カーネルと画像の要素を点ごとに乗算して累積すると、次の式で表すことができます。

畳み込みフィルタリングは空間フィルタリングの基本であり、以下に示す平滑化フィルタ、鮮鋭化フィルタ、画像のエッジを抽出するフィルタなど様々なフィルタがあり、いずれも畳み込みフィルタリングによって実現される。異なる機能を持つこれらのフィルターの主な違いは、コンボリューション カーネルが異なることです。

畳み込みフィルタリングは、画像に対するローカルな操作です。通常、特定のプラットフォームの計算と並行して高速化できます。畳み込みニューラル ネットワークと比較して、ここで学習する畳み込みフィルタリング カーネルのパラメータは手動で設計されています。問題ありません。畳み込みニューラル ネットワークでも、演算プロセスは同じですが、畳み込みカーネルのパラメーターはトレーニング ネットワークから推測されます。

平均フィルタリング

次に、最も単純なフィルター平均フィルターを紹介します。いわゆる平均フィルターは畳み込みカーネルの重みにあり、図に示すようにすべての重みは同じで、すべての重みの合計は 1 です。平均すると、各項目は 1/9

均值滤波器的作用是让这个图像变得更加平滑,但是需要注意的是:在通常情况下,均值滤波是 各项同性 的滤波器,但它在特的输入源的情况下,有可能会出现 各项异性 的效果。各项异性是什么意思呢?就说在这个图像的倾斜方向的结构上,或者说水平方向或者垂直方向的结构上,在应用同一个均值滤波器的时候,会经历不一样的平滑程度的处理。

以右上举例,图 (b)为输入原图,白条纹是一个单位,黑条纹是二个单位,共三个单位为一组间隔。应用一个3*3的均值滤波以后,它得到的输出是图(c),这个是符合预期黑白混合成灰。

当输入图像变为图(d)白条纹是一个单位,黑条纹也是一个单位,也是运用3*3的均值滤波的时候,得到的输出是图(e)所示。注意到输入的黑白条纹发生了一个反转,这个明显就是在预期之外了。

有关各项异性和各项同性的介绍,可以再看看这篇文章

高斯滤波

接着介绍高斯滤波,和均值滤波相比,高斯滤波是各项同性的,不存在特例。上图左边是一维的高斯函数,右边是二维的高斯函数。它是一个非常平滑的曲线/曲面,其中详细的高斯卷积核的权重求解可以参考之前写过的文章,这里不再详细论述。

当我们高斯滤波的时候,一个重要的参数就说它的滤波器的尺度sigma σ ,当sigma取值越小,高斯函数的输出越尖锐的一个曲线,当sigma的取值越大的时候,高斯曲线就越平坦,平滑的力度就越大。上面是一个实际的对比图,随着sigma的不断加大,它的平滑力度会越大,图像的细节已经完全看不到了。

双边滤波

那么上面介绍的高斯滤波是一个最理想的平滑滤波器,它的作用是对图像进行平滑去噪。那么有一个问题就是,高斯滤波的各项同性特性,在它平滑图像的同时会破坏图像的边缘性,即丢失了图像中边缘结构的信息。这其实是我们不希望的,譬如一幅人脸的图像,脸上有些痘痘,我们是希望用高斯滤波去掉这些痘痘,同时希望图像的人脸信息还是清晰的。那么在这种情况下需要有一个 具有边缘保持特性的滤波器,双边滤波器 是一个很好的选择。

双边滤波它的权重由两部分组成,一部分是依赖空间位置的权重项,第二部分是图像颜色差异的权重项。

看公式可能有点抽象,可以先参考我之前写在OpenGL实现的双边滤波的文章

Input是一个带噪声的输入信号,同时也是一个有着明显边缘结构(出现上下层断裂),当我们用双边滤波进行操作的时候,这里有两种权重,一个空间距离相关的权重(Spatial weight)其实就是一个高斯函数;另外一个是颜色差异边缘的权重(Range weight)就是和这个中心像素点颜色差异的一个权重。

最终双边滤波的权重,由(空间和颜色差异)两种权重相乘决定的,最后我们把相乘后的权重应用到输入信号上得到Result。明显看到结果即保留了边缘结构信息,也得到平滑去噪的效果。

以上是不同空间权重和颜色权重的双边滤波的效果比较。

双边滤波的应用是非常广泛的,在双目立体视觉里面它是一个很重要的算法。另外在3D网格处理也有一个很好的效果,3D网格也会存在噪声,使用双边滤波可以把脸部区域变得平滑,其他脸部外形的轮廓结构得到保持。

中值滤波

之前介绍的均值滤波、高斯滤波、双边滤波都是平滑滤波器,那么接着介绍 统计滤波。

这里给的例子,是一个带噪声的图像,而且是椒盐噪声算比较严重。当我们应用一个3*3的均值滤波器的时候,去噪效果不算理想。针对这一类随机的椒盐噪声,使用中值滤波有一个比较好的效果。

中值滤波是使用最为广泛的统计排序滤波器,即在滤波器的范围内,统计中心点领域的所有像素,排序后得到其中值,取其中值代替这个中心点的像素/灰度值。

统计排序滤波不仅仅是中值滤波,还可以最小值滤波(CV形态学的腐蚀),最大值滤波(CV形态学的膨胀)。

下一章继续介绍图像空间滤波的另外一种场景 锐化。

おすすめ

転載: blog.csdn.net/a360940265a/article/details/129673459