| Developers' Corner

Gabor 滤波器:有何作用?

Gabor 滤波器在时间序列分析领域广为人知,它也可以在 HALCON 中用于 2D 图像分析。

尽管文献中 Gabor 滤波器的核表示占绝大多数,但是在 HALCON 中,此滤波器可以方便地在频域中实现。

HALCON 中的标准工作流程是先将图像转换到频域,然后对其应用滤波器。Gabor 滤波器在图像的复杂部分才能发挥作用。然后,您可以使用以下命令构建 Gabor 滤波器或滤波器组(例如在双重 for 循环中):

 

gen_gabor (ImageFilter, GaborSize, 
Frequency+FrequencyIndex, Bandwidth,Orientation+OrientationIndex, 
'none', 'dc_center', Width, Height)

 

频域中滤波器的形状和方向可通过算子的参数控制。GaborSize 决定频带的大小,Frequency 决定频率,Bandwidth 调整频率范围,Orientation 则控制频域中滤波器的角度方向。

图中显示了频域中构建的滤波器。如果将 GaborSize 从默认值 1.4(左)调整为例如 50,可以构造 Gabor 核在频域中的表示(中),类似于文献中的 Gabor 滤波器。例如,使用两个 for 循环可以构建一个滤波器组(右)。定制滤波器组的多种应用也可以在文献中找到。

 

可将滤波器应用于频率图像,然后将过滤后的图像转换回图像域:

 

convol_gabor (ImageFFT, ImageFilter, ImageResultGabor, 
ImageResultHilbert)
fft_generic (ImageResultGabor, ImageFFTInvert, 'from_freq', 
1, 'sqrt', 'dc_center', 'byte')

 

一个任意构造的 Gabor 滤波器组的示例应用演示:自动提取旋转网格单元格的左上和左下边缘。

图片从左到右分别为:原始网格、以通用方式构建的示例滤波器组(自动旋转)、与频率图像的卷积以及所提取的边界。为明显起见,对所提取的边界进行了缩放。

在上方的图像序列中,显示的网格以0°方向定向。 网格下方略微倾斜,并且如果将旋转角度指定给滤镜,则滤镜会自动旋转结果。 这样,可以根据图像内容自动进行过滤。

通过对中间的黑色空间应用 lines_gauss 和 smallest_rectangle2_xld 提取滤波器旋转的角度。可以清楚地看到,微小的参数调整会产生很大的影响。同样,对于滤波的图像边界的影响也不可忽略,因为滤波操作总是需要考虑边界。

使用 Gabor 滤波器的另一个示例是区分文字与印章图像。使用反转图像过滤从黑到白的过渡。

 

从左到右分别为:原始图像、FFT、Gaborfilter、过滤后和缩放后的结果。构造滤波器组以便提取印章的边界。

 

带有 gabor 滤镜的图像提取印章

使用一些区域选择和处理技术,然后再应用 regiongrowing_mean,可以构建稳定的印章提取方法:

 

结论:

HALCON 为各种应用提供功能强大的 Gabor 滤波器。我们展示了如何使用 Gabor 滤波器自动跟踪图像周期性形状的角度,并通过滤波器组提取特征。此外,我们还区分了印章目录上的文字和图像。

该滤波器的应用多种多样,包括文档图像处理:Gabor 功能可用于识别多语言文档中的手写单词或区分文档中的文字和图像。Gabor 滤波器组还可用于纹理和图案分析等。