脚本宝典收集整理的这篇文章主要介绍了图像处理技术(二)滤波去噪(下),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
使用非局部平均去噪算法进行图像去噪,并多次计算进行优化 CvInvoke.FastNlMeansDenoising(img, img);
/// <summary> ///离散余弦变换(Dct)滤波 /// </summary> /// <param name="mat">图像加载到oPEncv的mat数据格式</param> /// <returns></returns> public static Mat Dct(Mat mat) { if (mat.NumberOfchannels < 3)//单通道图像,即二值化图或者灰度图 { if (mat.Size.Height % 2 != 0)//图像长宽需要为偶数,如果不是则进行扩边处理 { CvInvoke.CopyMakeBorder(mat, mat, 0, 1, 0, 0, BorderType.Constant); } if (mat.Size.Width % 2 != 0) //图像长宽需要为偶数,如果不是则进行扩边处理 { CvInvoke.CopyMakeBorder(mat, mat, 0, 0, 0, 1, BorderType.Constant); } Mat matdst = new Mat(); Emgu.CV.xphoto.XPhotoInvoke.DctDenoising(mat, matdst, 8); return matdst; } else { Mat[] Matbgr = mat.Split();//三通道图像,需要拆分三个独立的单通道进行处理, for (int i = 0; i < Matbgr.Length; i++) { Matbgr[i] = Dct(Matbgr[i]);//按单通道处理 } List<mat> listmat = new List<Mat>(); for (int i = 0; i < Matbgr.Length; i++) { listmat.Add(Matbgr[i]); } VectorOfMat vm = new VectorOfMat(listmat.ToArray());//合并处理后的通道 CvInvoke.Merge(vm, mat); return mat; } }
思路:
1.图像转成灰度
2.计算灰度平均值
3.以灰度平均值作为临界点进行二值化处理
4.轮廓检测
5.遍历所有的轮廓,得到每个轮廓的矩形范围(一般就是每个噪声点的范围)
6.判断每个矩形的长宽是否小于给定值,并用白色在原来的图像上进行填充,即把认为是噪点的范围用白色颜色填充
7.返回处理后的图像
Image image = Image.FromFile("xx.jpg"); Int k=5;//滤波核, Image<Bgr, Byte> img = new Image<Bgr, byte>((Bitmap)image); Image<Gray, Byte> gray = img.Convert<Gray, Byte>(); Gray average = gray.GetAverage();//平均值 CvInvoke.Threshold(gray, gray, average.MCVScalar.V0 - average.MCvScalar.V0 * 0.2, 255, ThresholdType.Binary);//二值化 using (VectorOfVectorOfPoint contours = new VectorOfVectorOfPoint()) { CvInvoke.FindContours(gray, contours, gray, RetrType.List, ChainApPRoXMethod.ChainApproxSimple); int count = contours.Size; for (int i = 0; i < count; i++) { using (VectorOfPoint contour = contours[i]) using (VectorOfPoint approxContour = new VectorOfPoint()) { Rectangle rec = CvInvoke.BoundingRectangle(contour); if (rec.Width <= k && rec.Height <= k) { CvInvoke.Rectangle(img, rec, new MCvScalar(255, 255, 255), -1); } } } } return img.Bitmap;
k=15 滤波结果,小黑点基本除去干净
以上是脚本宝典为你收集整理的图像处理技术(二)滤波去噪(下)全部内容,希望文章能够帮你解决图像处理技术(二)滤波去噪(下)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。