欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 编程资源 > 编程问答 >内容正文

编程问答

opencv探索之路(三):滤波操作 -ag凯发k8国际

发布时间:2024/10/12 编程问答 11 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 opencv探索之路(三):滤波操作 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

滤波处理分为两大类:线性滤波和非线性滤波。opencv里有这些滤波的函数,使用起来非常方便,现在简单介绍其使用方法。

线性滤波:方框滤波、均值滤波、高斯滤波

方框滤波

#include #includeusing namespace std; using namespace cv;int main() {mat img = imread("lol4.jpg");imshow("原始图", img);mat out;boxfilter(img, out, -1, size(5, 5));//-1指原图深度imshow("方框滤波", out);waitkey(0);}

均值滤波
均值滤波就是方框滤波的一个特殊情况。
均值滤波的缺点就是不能很好地保护细节,在图像去燥的同时也破坏了图像的而细节部分,从而使图像变得模糊,不能很好的去除噪点。

#include #includeusing namespace std; using namespace cv;int main() {mat img = imread("lol4.jpg");imshow("原始图", img);mat out;blur(img, out,size(5, 5));//-1指原图深度imshow("均值滤波", out);waitkey(0);}

高斯滤波
高斯滤波,可以消除高斯噪声,广泛应用于图像处理的减噪过程。

#include #includeusing namespace std; using namespace cv;int main() {mat img = imread("lol4.jpg");imshow("原始图", img);mat out;gaussianblur(img, out, size(3, 3), 0, 0);imshow("高斯滤波", out);waitkey(0);}

从效果看出,高斯滤波的而模糊感明显降低

非线性滤波:中值滤波、双边滤波

中值滤波

基本思想就是用像素点的领域灰度的中值来代替该像素点的灰度值,该方法在去除脉冲噪声、椒盐噪声的同时又能保留图像的细节(不会出现边缘模糊的情况)

中值滤波跟均值滤波的思想看起来很相似,只是一个取平均值,一个取中位数而已

#include #includeusing namespace std; using namespace cv;//中值滤波 int main() {mat img = imread("lol4.jpg");imshow("原始图", img);mat out;medianblur(img, out, 7);//第三个参数表示孔径的线性尺寸,它的值必须是大于1的奇数imshow("中值滤波", out);waitkey(0);}

现在说说中值滤波与均值滤波的比较:均值滤波中噪声成分会被加入到平均计算,所以输出是受到噪声的影响的。但是中值滤波中,由于噪声成分很难选上,所以基本不影响输出。当然好的性能也需要付出一点代价的,中值滤波花费的时间是均值滤波的5倍以上。

中值滤波一般采用奇数的卷积核。

中值滤波对一些细节多(特别是细、尖顶的)的图像不太适合。

双边滤波

双边滤波的最大特点就是做边缘保存。

#include #includeusing namespace std; using namespace cv;//双边滤波 int main() {mat img = imread("lol4.jpg");imshow("原始图", img);mat out;bilateralfilter(img, out, 25, 25 * 2, 25 / 2);imshow("双边滤波", out);waitkey(0);}

效果图看来,双边滤波是所有滤波中最清晰的。

转载于:https://www.cnblogs.com/skyfsm/p/6873188.html

总结

以上是ag凯发k8国际为你收集整理的opencv探索之路(三):滤波操作的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图