1、opencvSharp在VS中的配置
在【解决方案】中右键【引用】->【管理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();
}
高斯滤波也叫高斯模糊,高斯平滑。对图像邻域内像素进行平滑时,邻域内不同位置的像素被赋予不同的权值,对图像进行平滑的同时,同时能够更多的保留图像的总体灰度分布特征。
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();
}
均值滤波是把每个像素都用周围的N个像素来做均值操作,幅值近似相等且随机分布在不同位置上,这样可以平滑图像,速度较快,算法简单。但是无法去掉噪声,只能微弱的减弱它。
private void MedianBlur()
{
Cv2.MedianBlur(src_img, dst, MedianBlurValue.Value);
//中值滤波。参数:1,输入;2,输出;3,卷积核,大于1的奇数
picBoxShowDel.Image = dst.ToBitmap();
}