Computer vision 高斯平滑滤波器

Computer vision 高斯平滑滤波器,computer-vision,Computer Vision,他们要求我使用Python中的可分离过滤器实现2D高斯平滑。我不知道怎么做。。。事实上,我不知道一维和二维高斯平滑的区别。我在哪里可以找到更多关于它的信息 非常感谢您可以查看 基本思想是这样的。你有一个映像,你有一个叫做内核的东西。然后使用内核/过滤器处理图像。这将创建一个新图像,该图像是通过对源图像中的每个像素应用内核并将结果添加到目标图像而创建的 从中添加了一些更改,以使其更清楚地了解如何创建自定义内核以及如何使用它处理映像。我没有尝试过这个,所以应该将其视为伪代码: import Imag

他们要求我使用Python中的可分离过滤器实现2D高斯平滑。我不知道怎么做。。。事实上,我不知道一维和二维高斯平滑的区别。我在哪里可以找到更多关于它的信息

非常感谢

您可以查看

基本思想是这样的。你有一个映像,你有一个叫做内核的东西。然后使用内核/过滤器处理图像。这将创建一个新图像,该图像是通过对源图像中的每个像素应用内核并将结果添加到目标图像而创建的

从中添加了一些更改,以使其更清楚地了解如何创建自定义内核以及如何使用它处理映像。我没有尝试过这个,所以应该将其视为伪代码:

import ImageFilter

customKernelData = ( 0.0, 0.0, 0.0,
                     0.0, 1.0, 0.0,
                     0.0, 0.0, 0.0 )    

customKernel = ImageFilter.Kernel( (3,3), customKernelData )
im = im.filter( customKernel )
在您的情况下,您必须使用一个内核,其中的数据实际上是二维高斯数据。

您可以查看

基本思想是这样的。你有一个映像,你有一个叫做内核的东西。然后使用内核/过滤器处理图像。这将创建一个新图像,该图像是通过对源图像中的每个像素应用内核并将结果添加到目标图像而创建的

从中添加了一些更改,以使其更清楚地了解如何创建自定义内核以及如何使用它处理映像。我没有尝试过这个,所以应该将其视为伪代码:

import ImageFilter

customKernelData = ( 0.0, 0.0, 0.0,
                     0.0, 1.0, 0.0,
                     0.0, 0.0, 0.0 )    

customKernel = ImageFilter.Kernel( (3,3), customKernelData )
im = im.filter( customKernel )
在您的情况下,您必须使用一个内核,其中数据实际上是二维高斯数据。

关于二维过滤:

高斯平滑算子是一种二维卷积算子,用于“模糊”图像并去除细节和噪声

处理图像时,卷积是一种计算新值的操作​​给定像素的值,该值考虑周围相邻像素的值。 主要元素是卷积核

Сonvolution kernel-矩阵(任意大小,最常用的是方形矩阵(默认情况下,3x3)

[]
[][k][]
[…]

卷积的工作原理非常简单: 在计算所选像素的新值时,根据其中心像素对其应用卷积核。相邻像素被同一核覆盖。 接下来,计算图像中像素与值的乘积之和​​包含给定像素的卷积内核。 结果和是选定像素的新值。 现在,如果我们对图像中的每个像素应用卷积,你会得到一定的效果,这取决于选择的卷积核

例如,我们有以下图像:

[47][48][49][[]]
[47][50][42][]]
[47][48][42][[]]
【】【】【】【】【】【】

还有卷积核:

[0][1][0]
[0][0][0]
[0][0][0]

结果按以下方式计算:

结果=47*0+48*1+49*0+47*0+50*0+42*0+47*0+48*0+42*0=48

将内核应用于值为50的像素的结果:

[][[[]]
[[48][[[]]
[][[[]]
【】【】【】【】【】【】

是高斯平滑的一个很好的解释。关于1D和2D高斯平滑:

实际上,卷积可以相当快地执行,因为上面所示的二维各向同性高斯方程可分为x和y分量。因此,二维卷积可以通过首先在x方向与一维高斯卷积,然后在y方向与另一一维高斯卷积来执行

您可以尝试在此应用卷积滤波器

希望这对您有所帮助。

关于2D过滤:

高斯平滑算子是一种二维卷积算子,用于“模糊”图像并去除细节和噪声

处理图像时,卷积是一种计算新值的操作​​给定像素的值,该值考虑周围相邻像素的值。 主要元素是卷积核

Сonvolution kernel-矩阵(任意大小,最常用的是方形矩阵(默认情况下,3x3)

[]
[][k][]
[…]

卷积的工作原理非常简单: 在计算所选像素的新值时,根据其中心像素对其应用卷积核。相邻像素被同一核覆盖。 接下来,计算图像中像素与值的乘积之和​​包含给定像素的卷积内核。 结果和是选定像素的新值。 现在,如果我们对图像中的每个像素应用卷积,你会得到一定的效果,这取决于选择的卷积核

例如,我们有以下图像:

[47][48][49][[]]
[47][50][42][]]
[47][48][42][[]]
【】【】【】【】【】【】

还有卷积核:

[0][1][0]
[0][0][0]
[0][0][0]

结果按以下方式计算:

结果=47*0+48*1+49*0+47*0+50*0+42*0+47*0+48*0+42*0=48

将内核应用于值为50的像素的结果:

[][[[]]
[[48][[[]]
[][[[]]
【】【】【】【】【】【】

是高斯平滑的一个很好的解释。关于1D和2D高斯平滑:

实际上,卷积可以相当快地执行,因为上面所示的二维各向同性高斯方程可分为x和y分量。因此,二维卷积可以通过首先在x方向与一维高斯卷积,然后在y方向与另一一维高斯卷积来执行

您可以尝试应用卷积