OpenCV之cvSmooth函数平滑滤波

本文详细介绍了OpenCV中的cvSmooth函数,包括其参数含义和适用场景。cvSmooth支持简单的模糊、高斯模糊、中值滤波和双向滤波,特别适合图像去噪和平滑处理。中值滤波对消除椒盐噪声效果显著,而高斯滤波则常用于信号平滑,降低噪声。文章提供了实例,展示了在OpenCV中如何使用3x3中值滤波器处理椒盐噪声。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        1、cvSmooth函数用法

             定义原型

<span style="font-size:12px;">  void cvSmooth( const CvArr* src, CvArr* dst,int smoothtype=CV_GAUSSIAN,int param1, int param2, double param3, double param4 );</span>
    src:输入图像.
    dst:输出图像.
    smoothtype平滑方法:

CV_BLUR_NO_SCALE(简单不带尺度变换的模糊)-对每个象素的 param1×param2 领域求和。如果邻域大小是变化的,可以事先利用函数 cvIntegral 计算积分图像. 但是该选项没有计算平均值的操作,所以比  CV_BLUR  的运算快,但是容易溢出,因此输入输出图像必须有不同的数值精度,才能保证不会溢出。 不缩放比例的simple blur 支持8位的图像输入,但是结果必须是   IPL_DEPTH_16S(CV_16S)   或者   IPL_DEPTH_32S(CV_32S)    简单无缩放的滤波不适合  IN_PLACE  方式:因为输入与输出类型必须不同。


CV_BLUR (simple blur)- -对每个象素param1×param2邻域求和并做尺度变换 1/(param1×param2)。
CV_GAUSSIAN(gaussian blur) - -对图像进行核大小为 param1×param2 的高斯卷积。
CV_MEDIAN(median blur) - -对图像进行核大小为param1×param1 的中值滤波 (邻域是方的)。
CV_BILATERAL(双向滤波) - -应用双向 3x3 滤波,彩色 sigma=param1,空间 sigma=param2.。

    关于双向滤波,可参考http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值