1 / 24
文档名称:

【opencv】邻域滤波:方框、高斯、中值、双边滤波.doc

格式:doc   大小:58KB   页数:24页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

【opencv】邻域滤波:方框、高斯、中值、双边滤波.doc

上传人:iris028 2019/9/9 文件大小:58 KB

下载得到文件列表

【opencv】邻域滤波:方框、高斯、中值、双边滤波.doc

相关文档

文档介绍

文档介绍:【OpenCV】邻域滤波:方框、高斯、中值、双边滤波【OpenCV】邻域滤波:方框、高斯、中值、双边滤波【图像处理】(43)作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]xiaowei_cquarticledetails7785365邻域滤波(卷积)邻域算子值利用给定像素周围像素的值决定此像素的最终输出。如图左边图像与中间图像卷积禅城右边图像。目标图像中绿色的像素由原图像中蓝色标记的像素计算得到。通用线性邻域滤波是一种常用的邻域算子,输入像素加权得到输出像素:其中权重核【方框滤波】最简单的线性滤波是移动平均或方框滤波,用窗口中的像素值平均后输出,核函数为“滤波系数”。上面的式子可以简记为:为:其实等价于图像与全部元素值为1的核函数进行卷积再进行尺度缩放。代码OpenCV中的blur函数是进行标准方框滤波:[cpp]viewplaincopyprint?voidcv::blur(InputArraysrc,OutputArraydst,Sizeksize,Pointanchor,intborderType){boxFilter(src,dst,-1,ksize,anchor,true,borderType);}voidcv::blur(InputArraysrc,OutputArraydst,Sizeksize,Pointanchor,intborderType){boxFilter(src,dst,-1,ksize,anchor,true,borderType);}而boxFilter函数源码如下:[cpp]viewplaincopyprint?cv::Ptr<cv::FilterEngine>cv::createBoxFilter(intsrcType,intdstType,Sizeksize,Pointanchor,boolnormalize,intborderType){intsdepth=CV_MAT_DEPTH(srcType);=(srcType),sumType=CV_64F;if(sdepth<=CV_32S&&(!normalize||*<=(sdepth==CV_8U?(1<<23):sdepth==CV_16U?(1<<15):(1<<16))))sumType=CV_32S;sumType=CV_MAKETYPE();Ptr<BaseRowFilter>rowFilter=getRowSumFilter(srcType,sumType,,);Ptr<BaseColumnFilter>columnFilter=getColumnSumFilter(sumType,dstType,,,normalize?1./(*):1);returnPtr<FilterEngine>(newFilterEngine(Ptr<BaseFilter>(0),rowFilter,columnFilter,srcType,dstType,sumType,borderType));}cv::Ptr<cv::FilterEngine>cv::createBoxFilter(intsrcType,intdstType,Sizeksize,Pointanchor,boolnormalize,intborderType){intsdepth=CV_MAT_DEPTH(srcType);=(srcType),sumType=CV_64F;if(sdepth<=CV_32S&&(!normalize||*<=(sdepth==CV_8U?(1<<23):sdepth==CV_16U?(1<<15):(1<<16))))sumType=CV_32S;sumType=CV_MAKETYPE();Ptr<BaseRowFilter>rowFilter=getRowSumFilter(srcType,sumType,,);Ptr<BaseColumnFilter>columnFilter=getColumnSumFilter(sumType,dstType,,,normalize?1./(