【OpenCV】邻域滤波:方框、高斯、中值、双边滤波技术总结.docx

【OpenCV】邻域滤波:方框、高斯、中值、双边滤波技术总结.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
邻域滤波(卷积)邻域算子值利用给定像素周围像素的值决定此像素的最终输出。如图左边图像与中间图像卷积禅城右边图像。目标图像中绿色的像素由原图像中蓝色标记的像素计算得到。通用线性邻域滤波是一种常用的邻域算子,输入像素加权得到输出像素:其中权重核???为“滤波系数”。上面的式子可以简记为:【方框滤波】最简单的线性滤波是移动平均或方框滤波,用?窗口中的像素值平均后输出,核函数为:其实等价于图像与全部元素值为1的核函数进行卷积再进行尺度缩放。代码OpenCV中的 blur函数是进行标准方框滤波:[cpp]?view plain?copyvoid?cv::blur(?InputArray?src,?OutputArray?dst,?????????????Size?ksize,?Point?anchor,?int?borderType?)??{??????boxFilter(?src,?dst,?-1,?ksize,?anchor,?true,?borderType?);??}??而boxFilter函数源码如下:[cpp]?view plain?copycv::Ptrcv::FilterEngine?cv::createBoxFilter(?int?srcType,?int?dstType,?Size?ksize,??????????????????????Point?anchor,?bool?normalize,?int?borderType?)??{??????int?sdepth?=?CV_MAT_DEPTH(srcType);??????int?cn?=?CV_MAT_CN(srcType),?sumType?=?CV_64F;??????if(?sdepth?=?CV_32S??(!normalize?||??????????ksize.width*ksize.height?=?(sdepth?==?CV_8U???(123)?:??????????????sdepth?==?CV_16U???(1??15)?:?(1??16)))?)??????????sumType?=?CV_32S;??????sumType?=?CV_MAKETYPE(?sumType,?cn?);????????PtrBaseRowFilter?rowFilter?=?getRowSumFilter(srcType,?sumType,?ksize.width,?anchor.x?);??????PtrBaseColumnFilter?columnFilter?=?getColumnSumFilter(sumType,??????????dstType,?ksize.height,?anchor.y,?normalize???1./(ksize.width*ksize.height)?:?1);????????return?PtrFilterEngine(new?FilterEngine(PtrBaseFilter(0),?rowFilter,?columnFilter,?????????????srcType,?dstType,?sumType,?borderType?));??}??这里 blur 和boxFilter的区别是,blur是标准化后的boxFilter,即boxFilter的核函数:其中,[cpp]?view plain?copyblur(?src,?dst,?Size(?1,?1?),?Point(-1,-1));??blur(?src,?dst,?Size(?4,?4?),?Point(-1,-1));??blur(?src,?dst,?Size(?8,?8?),?Point(-1,-1));??blur(?src,?dst,?Size(?16,?16?),?Point(-1,-1));??实验结果下图是对一幅图像分别用1*1,4*4,8*8,16*16标准方框滤波后的图像:??????【高斯滤波】高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器。它对去除服从正态分布的噪声很有效。常用的零均值离散高斯滤波器函数:2D图像中表示为:代码[cpp]?view plain?copy/****************************************************************************************\??????????????????????????????????????Gaussian?Blur?\***********************************************************************************

您可能关注的文档

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档