在 C# 中對圖像應用中值和維納濾波器

圖像編輯在各種應用程序中用於操縱圖像以進行進一步處理。我們寫了一系列博客,即裁剪旋轉模糊 等,它們對您在應用程序中實現圖像編輯功能很有用。在本文中,我們將向您展示如何應用中值濾波器和維納濾波器,它們通常用於對圖像進行去噪和平滑處理。因此,讓我們看看如何在 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");
}

下面是應用帶有灰度選項的高斯維納濾波器之前和之後的圖像。

將高斯韋納濾波器應用於圖像灰度化

下面是應用高斯維納濾波器之前和之後的圖像,沒有灰度。

將 Gauss Weiner 濾色器應用於圖像

在 C# 中將運動維納濾波器應用於圖像

運動維納濾波器用於消除由於移動物體而產生的圖像模糊。以下是在 C# 中將運動維納濾波器應用於圖像的步驟。

以下代碼示例顯示瞭如何在 C# 中將運動維納濾波器應用於圖像。

// 加載嘈雜的圖像 
using (Image image = Image.Load("jack.jpg"))
{
    // 將圖像轉換為 RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // 創建 MotionWienerFilterOptions 類的實例並設置長度、平滑值和角度
    MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
    options.Grayscale = true;

    // 將 MedianFilterOptions 過濾器應用於 RasterImage 對象並保存生成的圖像
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_MotionWiener.jpg");
}
在 C# 中將 Motion Weiner 過濾器應用於圖像

C# 中值和維納圖像過濾 API - 獲得免費許可證

您可以 獲得免費的臨時許可證 並在沒有評估限制的情況下對圖像應用中值和維納濾波器。

結論

在本文中,您學習瞭如何在 C# 中對圖像應用中值和維納濾波器。此外,我們還介紹瞭如何減少圖像中移動物體的噪聲。您可以在 C# 應用程序中輕鬆使用這些功能來集成圖像編輯功能。

閱讀更多

您可以使用 文檔 探索有關 .NET 圖像處理 API 的更多信息。此外,您可以通過我們的 論壇 與我們分享您的疑問。

也可以看看