cvSmooth 平滑处理

一、平滑处理

“平滑处理”又称为“模糊处理”,是用来减少图像上的噪声或者失真。降低图像分辨率时,平滑处理是很重要处理。在OpenCV中可以使用cvSmooth函数对图像进行平滑处理。

二、cvSmooth函数

void cvSmooth( const CvArr* src, CvArr* dst, int smoothtype=CV_GAUSSIAN, int param1=3, int param2=0, double param3=0, double param4=0 );

参数介绍:
src  输入图像.
dst  输出图像.
smoothtype  平滑方法:

(1)CV_BLUR_NO_SCALE (简单不带尺度变换的模糊) - 对每个象素的 param1×param2 领域求和。如果邻域大小是变化的,可以事先利用函数 cvIntegral 计算积分图像。

(2)CV_BLUR (simple blur) - 对每个象素param1×param2邻域 求和并做尺度变换 1/(param1?param2).
(3)CV_GAUSSIAN (gaussian blur) - 对图像进行核大小为 param1×param2 的高斯卷积
(4)CV_MEDIAN (median blur) - 对图像进行核大小为param1×param1 的中值滤波 (i.e. 邻域是方的).
(5)CV_BILATERAL (双向滤波) - 应用双向 3x3 滤波,彩色 sigma=param1,空间 sigma=param2. 关于双向滤波param1  平滑操作的第一个参数.
param2  平滑操作的第二个参数. 对于简单/非尺度变换的高斯模糊的情况,如果param2的值 为零,则表示其被设定为param1。
param3  对应高斯参数的 Gaussian sigma (标准差). 如果为零,则标准差由下面的核尺寸计算: sigma = (n/2 - 1)*0.3 + 0.8, 其中 n=param1 对应水平核, n=param2 对应垂直核. 对小的卷积核 (3×3 to 7×7) 使用如上公式所示的标准 sigma 速度会快。如果 param3 不为零,而 param1 和 param2 为零,则核大小有 sigma 计算 (以保证足够精确的操作).


函数 cvSmooth 可使用上面任何一种方法平滑图像。每一种方法都有自己的特点以及局限。
没有缩放的图像平滑仅支持单通道图像,并且支持8位到16位的转换(与cvSobel和cvaplace相似)和32位浮点数到32位浮点数的变换格式。
简单模糊和高斯模糊支持 1- 或 3-通道, 8-比特 和 32-比特 浮点图像。这两种方法可以(in-place)方式处理图像。
中值和双向滤波工作于 1- 或 3-通道, 8-位图像,但是不能以 in-place 方式处理图像.

三、5种平滑方法介绍

1.CV_BLUR_NO_SCALE (简单不带尺度变换的模糊):与simple blur本质是相同的,但并没有计算其平均值的操作。因此,输入图像和结果图像必须有不同的数值精度,才能保证模糊操作不会导 致错误溢出。

2.CV_BLUR (simple blur):不缩放比例的simple blur支持8位的输入图像,结果图像的数据类型必须是IPL_DEPTH_16S (CV_16S) 或 IPL_DEPTH_32S (CV_32S)。

3.CV_GAUSSIAN (gaussian blur):虽然它不是最快的,但它是最有用的滤波器。高斯滤波用卷积核与输入图像的每个点进行卷枳,结果之和作为输出图像的像素值。

4.CV_MEDIAN (median blur):将中心像素的正方形邻域内的每个像素值用 中间像素值(不是平均像素值)替换,它可以用来处理单个通道、三个通道或者四个 通道8位的图像,但不可以in place操作。

5.CV_BILATERAL (双向滤波):双边滤波会依据每个像素及其邻域构造一个加权平均值,加权计算包括两个部分,其中第一部分加权方式与高斯平滑中的相同,第二部分也属于高斯加权,但不是基于中心象素点与其他象素点空间距离之上的加权,而是基于其他像素与中心像素的亮度差值的加权。可以将双边滤波视为高斯平滑,对相似的像素赋予较高的权重,不相似的像素赋予较小的权重。这种滤波的典是使处理过的图像看上去像是一幅源图的水彩画,可用于图像的分割。

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值