Open CV图像处理与计算机视觉-UCAS2018-论文分享OpenCv

OpenCV 线性滤波

2019-03-26  本文已影响0人  亚欧沙龙

线性滤波

图像滤波与滤波器

图像滤波,指的是在尽量保留图像特征的条件下对目标图像得噪声进行抑制,是图像处理当中不可缺少的部分。

平滑录播室低频增强的空间域滤波技术,它的目的有两类:一类是模糊,一类是消除噪音。常见的滤波有:

线性滤波简介

线性滤波经常用于剔除输入信号中不想要的频率或者从许多频率中选择一个想要的频率。

滤波和模糊

邻域算子与线性邻域滤波

邻域算子是利用给定像素周围的像素值决定此像素的最终输出值的一种算子。线性滤波就是一种常见的邻域算子。

卷积核卷积

线性滤波处理的输出像素值g(i , j) 是输入像素值f(i + k,j + I)的加权和,如下:

加权值和

其中的h(k,l),我们称其为"核",时滤波器的加权系数,即滤波器的"滤波系数",f表示输入像素值,h表示加权系数"核",g表示输出像素值,整体可以简单写作:

卷积公式简单表达

常见的线性滤波操作

方框滤波

void boxFilter(
    InputArray src,
    OutPutArray dst,
    int ddepth,  //输出图像的深度,-1表示原图深度
    Size ksize,  //内核的大小
    Point anchor = Point(-1,-1),  //表示锚点,即平滑的那个点
    boolnormalize = true,  //一个标识符,表示内核是否被其区域归一化
    int borderType = BORDER_DEFAULT  //用于推断图像外部像素的某种边界模式
)

当normalize=true的时候,方框滤波就变成了我们熟悉的均值滤波,均值滤波就是方框滤波归一化后的特殊情况

方框滤波

</div>

效果

内核大小(5,5) 内核大小(7,7)
内核大小(5,5) 内核大小(7,7)

均值滤波

均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y)=1/m ∑f(x,y) m为该模板中包含当前像素在内的像素总个数。

void blur(
    InputArray src,
    OutPutArray dst,
    Size ksize,  //内核的大小
    Point anchor = Point(-1,-1),  //表示锚点,即平滑的那个点
     int borderType = BORDER_DEFAULT  //用于推断图像外部像素的某种边界模式
)
均值滤波

高斯滤波

从数学的角度上来看,图像的高斯模糊过程就是图像与正态分布作卷积。

void GaussianBlur(
    InputArray src,
    OutPutArray dst,
    Size ksize,  //高斯内核的大小
    double sigmax,   //表示高斯函数在X方向的标准偏差
    double sigmay = 0,  //表示高斯函数在Y方向的标准偏差
    int borderType = BORDER_DEFAULT  //用于推断图像外部像素的某种边界模式
)

一维高斯函数

一维高斯函数

二维高斯函数

二维高斯函数

效果

高斯内核大小(5,5) 高斯内核大小(9,9)
高斯内核大小(5,5) 高斯内核大小(9,9)
上一篇下一篇

猜你喜欢

热点阅读