opencv基础之高斯模糊

高斯模糊

图像的模糊和平滑是同一个层面的意思,平滑的过程就是一个模糊的过程。而图像的去噪可以通过图像的模糊、平滑来实现(图像去噪还有其他的方法)那么怎么才能对一幅图像进行模糊平滑呢?图像的模糊平滑是对图像矩阵进行平均的过程。相比于图像锐化(微分过程),图像平滑处理是一个积分的过程。图像平滑过程可以通过原图像和一个积分算子进行卷积来实现。

最简单的积分算子就是全1算子
opencv基础之高斯模糊_第1张图片
利用全1算子可以对图像进行模糊平滑操作,有一定的去噪能力。

利用高斯算子进行模糊处理就是我们常听到的高斯模糊。高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,滤波高斯就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。

高斯滤波的具体操作是:用一个模板(或称卷积,掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

下面我们来看一下高斯函数:标准差为σ的高斯分布如下式
opencv基础之高斯模糊_第2张图片
对5*5高斯算子每个元素进行四舍五入,可以得到下面矩阵
opencv基础之高斯模糊_第3张图片
看到有些地方直接用上面的矩阵对图像进行高斯模糊,实际上是运用的是标准差为2的高斯近似算子。

void GaussianBlur(Mat& src, Mat& result, int baseKernel, double delta)
{
   
	//高斯核半径
	int kerR = baseKernel / 2;
	//高斯核因子
	Mat kernel = Mat_<double>(baseKernel, baseKernel);
	//归一化参数
	double alpha = 1 / ((2

你可能感兴趣的:(opencv,opencv,计算机视觉,cv,c++)