C# OpenCVSharp 记录 之一中值、均值、高斯滤波

1、opencvSharpVS中的配置

在【解决方案】中右键【引用】->【管理NuGet程序包】->【浏览】opencvsharp,选择

OpenCvSharp4;OpenCvSharp4.runtime.win;安装合适的版本。

在项目中添加  using OpenCvSharp;   

2、图像读取 new Mat() 、显示Cv2.ImShow()

Mat src_img= new Mat("filePath",ImreadModes.Color);  //图像读取

        1:filePath        文件位置

        2:ImreadModes         读取模式
Cv2.ImShow("src_img",src_img);   

       1:“src_img”为窗体名;

        2:src_img为图像源

3、图像保存Cv2.ImWrite()

Cv2.ImWrite("src_img.png", src_img);  

        1:"src_img.png"为图像文件的位置和名称

4、src_img为原图、 dst为定义处理后的图

5、图像处理 中值滤波、高斯滤波、均值滤波

滤波作用:在进行图像处理之前的预处理,降低图像的噪点,提高图像的平滑度。

  中值滤波是取卷积计算的中间值,中值滤波的好处是对图像的椒盐噪声有很好的抑制作用,因为图像的椒盐噪点,是图像某一片区域像素的极大值或者极小值,使用中值滤波可以过滤掉这些噪点,同时它可以保护图像尖锐的边缘,选择适当的点来替代污染点的值,所以处理效果好。

 private void Blur()
 {
            OpenCvSharp.Point point = new OpenCvSharp.Point(SharpPoint.Value, SharpPoint.Value);
            Cv2.Blur(src_img, dst, new OpenCvSharp.Size(meanKernelX.Value, meanKernelY.Value), point);

        // 参数1:输入;2,输出;3,卷积核;4,卷积核中心点位置
            picBoxShowDel.Image = dst.ToBitmap();

 }

C# OpenCVSharp 记录 之一中值、均值、高斯滤波_第1张图片C# OpenCVSharp 记录 之一中值、均值、高斯滤波_第2张图片

高斯滤波也叫高斯模糊,高斯平滑。对图像邻域内像素进行平滑时,邻域内不同位置的像素被赋予不同的权值,对图像进行平滑的同时,同时能够更多的保留图像的总体灰度分布特征。

 private void GaussianBlur()
        {
            Cv2.GaussianBlur(src_img, dst, new OpenCvSharp.Size(gussX.Value, gussY.Value), gussPX.Value, gussPY.Value);  

         //高斯模糊。参数:1,输入;2,输出;3,卷积核,为正奇数;

        //4,X方向上高斯核标准偏差;5,Y方向上高斯核标准偏差
            picBoxShowDel.Image = dst.ToBitmap();
        }

C# OpenCVSharp 记录 之一中值、均值、高斯滤波_第3张图片C# OpenCVSharp 记录 之一中值、均值、高斯滤波_第4张图片

均值滤波是把每个像素都用周围的N个像素来做均值操作,幅值近似相等且随机分布在不同位置上,这样可以平滑图像,速度较快,算法简单。但是无法去掉噪声,只能微弱的减弱它。

private void MedianBlur()
        {
            Cv2.MedianBlur(src_img, dst, MedianBlurValue.Value);  

         //中值滤波。参数:1,输入;2,输出;3,卷积核,大于1的奇数
            picBoxShowDel.Image = dst.ToBitmap();
        }

C# OpenCVSharp 记录 之一中值、均值、高斯滤波_第5张图片C# OpenCVSharp 记录 之一中值、均值、高斯滤波_第6张图片

源程序链接:https://download.csdn.net/download/xaiqpl/20097067

你可能感兴趣的:(视觉检测,opencv,c#,.net)