并联应用滤波器组

本文关键字:滤波器 应用 | 更新日期: 2023-09-27 18:01:43

我用的是雅阁。净框架。

假设我有三个Gabor过滤器,并且我需要并行地将它们应用于图像。

以下是并行滤波器组的正确概念吗?

Bitmap bmp = (Bitmap)Bitmap.FromFile(@"C:'Lenna.png");
GaborFilter gf1 = new GaborFilter();
gf1.GaborKernelSize = 3;
gf1.Lambda = 4.0;
gf1.Theta = 45.0;////////////////////Theta is 45
gf1.Psi = 1.0;
gf1.Sigma = 2.0;
gf1.Gamma = 0.3;
GaborFilter gf2 = new GaborFilter();
gf2.GaborKernelSize = 3;
gf2.Lambda = 4.0;
gf2.Theta = 90.0;/////////////////////Theta is 90
gf2.Psi = 1.0;
gf2.Sigma = 2.0;
gf2.Gamma = 0.3;
GaborFilter gf3 = new GaborFilter();
gf3.GaborKernelSize = 3;
gf3.Lambda = 4.0;
gf3.Theta = 135.0;////////////////////Theta is 135
gf3.Psi = 1.0;
gf3.Sigma = 2.0;
gf3.Gamma = 0.3;
bmp = gf1.Apply(bmp);
bmp = gf2.Apply(bmp);
bmp = gf3.Apply(bmp);
MyWinForm f = new MyWinForm ();
f.PictureBox = bmp;
f.ShowDialog();

如果不是,那么,我如何使它们并行工作?

并联应用滤波器组

滤波器组只是一组滤波器,每个滤波器具有不同的参数,旨在获得信号不同分量的响应。

在您的例子中,Gabor过滤器,您更改的参数是方向,因此每个过滤器将给出图像中具有所选方向的特征的响应。对于大小为N的滤波器组(N个不同的滤波器),如果我们将其应用于图像,我们将得到N个不同的图像,每个图像都是特定滤波器的结果。

在您的代码中,您一个接一个地应用过滤器,第一个过滤器的输出是下一个过滤器的输入。在这种情况下,您不能并行过滤图像。

应用Gabor滤波器只是Gabor核与图像的卷积。因此,与其在图像上单独应用每个Gabor滤波器,不如将Gabor滤波器卷积在一起,得到一个新的滤波器,该滤波器可以在整个图像上应用一次。