C# OpenCVSharp4 Blur

Install-Package OpencvSharp4;
Install-Package OpenCVSharp4.runtime.win;
//Update csproj file

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0-windows</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <UseWPF>true</UseWPF>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="OpenCVSharp4" Version="4.11.0.20250507" />
    <PackageReference Include="Opencvsharp4.runtime.win" Version="4.11.0.20250507" />
  </ItemGroup>

</Project>

 

1.Gaussian Blur.

using OpenCvSharp;
using System.Drawing;
using System;
using System.Windows;
using Size = OpenCvSharp.Size;

namespace ConsoleApp22
{
    internal class Program
    {
        static int screenWidth;
        static int screenHeight;
        static void Main(string[] args)
        {
            screenWidth = (int)SystemParameters.PrimaryScreenWidth;
            screenHeight = (int)SystemParameters.PrimaryScreenHeight;

            Console.WriteLine($"Screen Width: {screenWidth}");
            Console.WriteLine($"Screen Height: {screenHeight}");
            GaussianBlur();
            Console.WriteLine("Hello, World!");
        }

        static void GaussianBlur()
        {
            using (Mat src = new Mat(@"../../../Images/1.jpg", ImreadModes.Color))
            {
                using (Mat dst = new Mat())
                {
                    Cv2.GaussianBlur(src, dst, new Size(999, 999), 0);
                    Cv2.ImWrite($"1blured.jpg", dst);

                    Cv2.NamedWindow("Original", WindowFlags.Normal);
                    Cv2.NamedWindow("Gaussian Blur", WindowFlags.Normal);

                    // Resize windows to fit screen
                    Cv2.ResizeWindow("Original", screenWidth, screenHeight);
                    Cv2.ResizeWindow("Gaussian Blur", screenWidth, screenHeight);

                    //Display
                    Cv2.ImShow("Original", src);
                    Cv2.ImShow("Gaussian Blur", dst);
                    Cv2.WaitKey(0);
                    Cv2.DestroyAllWindows();
                }
            }
        }
    }
}

 

 

image

 

2.Average Blur

static void AverageBlur()
{
    using(Mat src=new Mat(@"../../../Images/1.jpg",ImreadModes.Color))
    {
        using (Mat dst = new Mat())
        {
            Cv2.Blur(src, dst, new Size(999, 999));
            Cv2.ImWrite("average_blur.jpg", dst);
            Cv2.NamedWindow("Original", WindowFlags.Normal);
            Cv2.NamedWindow("Average Blur", WindowFlags.Normal);

            // Resize windows to fit screen
            Cv2.ResizeWindow("Original", screenWidth, screenHeight);
            Cv2.ResizeWindow("Average Blur", screenWidth, screenHeight);

            Cv2.ImShow("Original", src);
            Cv2.ImShow("Average Blur", dst);

            Cv2.WaitKey(0);
        }
    }
}

image

 

 

3.Median Blur

image

 

static int screenWidth;
static int screenHeight;
static void Main(string[] args)
{
    screenWidth = (int)SystemParameters.PrimaryScreenWidth;
    screenHeight = (int)SystemParameters.PrimaryScreenHeight;

    MedianBlur();
    Console.WriteLine("Hello, World!");
}


static void MedianBlur()
{
    using(Mat src=new Mat(@"../../../Images/1.jpg",ImreadModes.Color))
    {
        using (Mat dst = new Mat())
        {
            Cv2.MedianBlur(src, dst, 15);
            Cv2.ImWrite("median_blur.jpg", dst);

            Cv2.NamedWindow("Original", WindowFlags.Normal);
            Cv2.NamedWindow("MedianBlur", WindowFlags.Normal);

            Cv2.ResizeWindow("Original", screenWidth, screenHeight);
            Cv2.ResizeWindow("MedianBlur", screenWidth, screenHeight);

            // Verify the operation worked
            Console.WriteLine($"Source dimensions: {src.Width}x{src.Height}");
            Console.WriteLine($"Destination dimensions: {dst.Width}x{dst.Height}");
            Console.WriteLine($"Kernel size used: {15}");

            Cv2.NamedWindow("Original", WindowFlags.Normal);
            Cv2.NamedWindow("MedianBlur", WindowFlags.Normal);

            // Use smaller window sizes for better visibility
            Cv2.ResizeWindow("Original", screenWidth, screenHeight);
            Cv2.ResizeWindow("MedianBlur", screenWidth, screenHeight);

            Cv2.ImShow("Original", src);
            Cv2.ImShow("MedianBlur", dst);
            Cv2.WaitKey(0);
            Cv2.DestroyAllWindows();
        }
    }
}

 

 

 

5.Bilateral Filter

 static void BilateralFilter()
 {
     using(Mat src=new Mat(@"../../../Images/1.jpg",ImreadModes.Color))
     {
         using (Mat dst = new Mat())
         {
             Cv2.BilateralFilter(src, dst, 15, 80, 80);
             Cv2.ImWrite("bilateral_filter.jpg", dst);

             Cv2.NamedWindow("Original", WindowFlags.Normal);
             Cv2.NamedWindow("Bilateral_filter", WindowFlags.Normal);

             Cv2.ResizeWindow("Original", screenWidth, screenHeight);
             Cv2.ResizeWindow("Bilateral_filter", screenWidth, screenHeight);

             Cv2.ImShow("Original", src);
             Cv2.ImShow("Bilateral_filter", dst);
             Cv2.WaitKey(0);
             Cv2.DestroyAllWindows();
         }
     }
 }

 

 

image

 

 

 

using OpenCvSharp;
using System.Drawing;
using System;
using System.Windows;
using Size = OpenCvSharp.Size;

namespace ConsoleApp22
{
    internal class Program
    {
        static int screenWidth;
        static int screenHeight;
        static void Main(string[] args)
        {
            screenWidth = (int)SystemParameters.PrimaryScreenWidth;
            screenHeight = (int)SystemParameters.PrimaryScreenHeight;

            BilateralFilter();
            Console.WriteLine("Hello, World!");
        }

        static void BilateralFilter()
        {
            using(Mat src=new Mat(@"../../../Images/1.jpg",ImreadModes.Color))
            {
                using (Mat dst = new Mat())
                {
                    Cv2.BilateralFilter(src, dst, 15, 80, 80);
                    Cv2.ImWrite("bilateral_filter.jpg", dst);

                    Cv2.NamedWindow("Original", WindowFlags.Normal);
                    Cv2.NamedWindow("Bilateral_filter", WindowFlags.Normal);

                    Cv2.ResizeWindow("Original", screenWidth, screenHeight);
                    Cv2.ResizeWindow("Bilateral_filter", screenWidth, screenHeight);

                    Cv2.ImShow("Original", src);
                    Cv2.ImShow("Bilateral_filter", dst);
                    Cv2.WaitKey(0);
                    Cv2.DestroyAllWindows();
                }
            }
        }


        static void MedianBlur()
        {
            using(Mat src=new Mat(@"../../../Images/1.jpg",ImreadModes.Color))
            {
                using (Mat dst = new Mat())
                {
                    Cv2.MedianBlur(src, dst, 15);
                    Cv2.ImWrite("median_blur.jpg", dst);

                    Cv2.NamedWindow("Original", WindowFlags.Normal);
                    Cv2.NamedWindow("MedianBlur", WindowFlags.Normal);

                    Cv2.ResizeWindow("Original", screenWidth, screenHeight);
                    Cv2.ResizeWindow("MedianBlur", screenWidth, screenHeight);

                    // Verify the operation worked
                    Console.WriteLine($"Source dimensions: {src.Width}x{src.Height}");
                    Console.WriteLine($"Destination dimensions: {dst.Width}x{dst.Height}");
                    Console.WriteLine($"Kernel size used: {15}");

                    Cv2.NamedWindow("Original", WindowFlags.Normal);
                    Cv2.NamedWindow("MedianBlur", WindowFlags.Normal);

                    // Use smaller window sizes for better visibility
                    Cv2.ResizeWindow("Original", screenWidth, screenHeight);
                    Cv2.ResizeWindow("MedianBlur", screenWidth, screenHeight);

                    Cv2.ImShow("Original", src);
                    Cv2.ImShow("MedianBlur", dst);
                    Cv2.WaitKey(0);
                    Cv2.DestroyAllWindows();
                }
            }
        }

        static void AverageBlur()
        {
            using(Mat src=new Mat(@"../../../Images/1.jpg",ImreadModes.Color))
            {
                using (Mat dst = new Mat())
                {
                    Cv2.Blur(src, dst, new Size(999, 999));
                    Cv2.ImWrite("average_blur.jpg", dst);
                    Cv2.NamedWindow("Original", WindowFlags.Normal);
                    Cv2.NamedWindow("Average Blur", WindowFlags.Normal);

                    // Resize windows to fit screen
                    Cv2.ResizeWindow("Original", screenWidth, screenHeight);
                    Cv2.ResizeWindow("Average Blur", screenWidth, screenHeight);

                    Cv2.ImShow("Original", src);
                    Cv2.ImShow("Average Blur", dst);

                    Cv2.WaitKey(0);
                    Cv2.DestroyAllWindows();
                }
            }
        }

        static void GaussianBlur()
        {
            using (Mat src = new Mat(@"../../../Images/1.jpg", ImreadModes.Color))
            {
                using (Mat dst = new Mat())
                {
                    Cv2.GaussianBlur(src, dst, new Size(999, 999), 0);
                    Cv2.ImWrite($"1blured.jpg", dst);

                    Cv2.NamedWindow("Original", WindowFlags.Normal);
                    Cv2.NamedWindow("Gaussian Blur", WindowFlags.Normal);

                    // Resize windows to fit screen
                    Cv2.ResizeWindow("Original", screenWidth, screenHeight);
                    Cv2.ResizeWindow("Gaussian Blur", screenWidth, screenHeight);

                    //Display
                    Cv2.ImShow("Original", src);
                    Cv2.ImShow("Gaussian Blur", dst);
                    Cv2.WaitKey(0);
                    Cv2.DestroyAllWindows();
                }
            }
        }
    }
}

 

posted @ 2025-10-12 15:54  FredGrit  阅读(6)  评论(0)    收藏  举报