在 C# 中对图像应用中值和维纳滤波器

图像编辑用于各种应用程序以操纵图像以进行进一步处理。我们编写了一系列博客,即croppingrotatingblurring 等,它们对您在应用程序中实现图像编辑功能很有用。在本文中,我们将向您展示如何应用中值和维纳滤波器,它们通常用于去噪和平滑图像。因此,让我们看看如何在 C# 中以编程方式将中值和维纳滤波器应用于图像。

用于应用中值和维纳图像过滤器的 C# API - 免费下载

Aspose.Imaging for .NET 是一个了不起的 API,用于在 .NET 应用程序中实现图像编辑功能。我们将使用这个 API 在图像上应用中值和维纳滤波器。您可以 下载 API 或从 NuGet 安装它。

PM> Install-Package Aspose.Imaging

将中值滤镜应用于 C# 中的图像

中值滤波器是一种非线性数字滤波技术,用于减少图像中的噪声。以下是在 C# 中将中值滤波器应用于图像的步骤。

以下代码示例展示了如何在 C# 中将中值滤波器应用于图像。

// 加载嘈杂的图像 
using (Image image = Image.Load("jack.jpg"))
{
    // 将图像转换为 RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // 创建 MedianFilterOptions 类的实例并设置大小
    MedianFilterOptions options = new MedianFilterOptions(4);
    
    // 应用过滤器并保存图像
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_median.jpg");
}

下面是应用中值滤波器之前和之后的图像。

将中值滤波器应用于图像 C#

将高斯维纳滤波器应用于 C# 中的图像

另一种用于最小化图像中的附加噪声和模糊的常用方法是高斯维纳。以下是将高斯维纳滤波器应用于 C# 中的图像的步骤。

以下代码示例展示了如何在 C# 中将高斯维纳滤波器应用于图像。

// 加载嘈杂的图像 
using (Image image = Image.Load("jack.jpg"))
{
    // 将图像转换为 RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // 创建 GaussWienerFilterOptions 类的实例并设置半径大小和平滑值
    GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
    options.Grayscale = true;

    // 将 MedianFilterOptions 过滤器应用于 RasterImage 对象并保存生成的图像
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_guass.jpg");
}

下面是使用灰度选项应用高斯维纳滤波器之前和之后的图像。

将高斯韦纳滤波器应用于图像灰度

下面是应用高斯维纳滤波器之前和之后的图像,没有灰度。

将高斯韦纳滤色器应用于图像

在 C# 中将 Motion Wiener 滤波器应用于图像

维纳运动滤波器用于消除由于移动物体而产生的图像模糊。以下是在 C# 中将运动维纳滤镜应用于图像的步骤。

以下代码示例展示了如何在 C# 中将运动维纳滤镜应用于图像。

在 C# 中将 Motion Weiner 过滤器应用于图像

C# Median and Wiener Image Filtering API - 获取免费许可证

您可以 获得免费的临时许可证 并对图像应用中值和维纳滤波器,而不受评估限制。

结论

在本文中,您学习了如何在 C# 中将中值和维纳滤波器应用于图像。此外,我们还介绍了如何减少图像中移动物体的噪声。您可以在 C# 应用程序中轻松使用这些功能来集成图像编辑功能。

阅读更多

您可以使用 文档 探索有关 .NET 图像处理 API 的更多信息。此外,您可以通过我们的 论坛 与我们分享您的疑问。

也可以看看