opencv|OpenCV图像学习八,图像归一化盒子滤波处理和图像高斯滤波处理实现

OpenCV图像模糊原理 模糊操作是图像处理中最简单和常用的操作之一,使用该操作的原因之一就为了给图像预处理时减低椒盐噪声。 图像模糊,也称为平滑操作,是一种简单且经常使用的图像处理操作,平滑主要是能减少噪声。
要执行平滑操作,我们将对图像应用滤镜。最常见的滤波器类型是线性的,其中输出像素的值(即g(i ,j )被确定为输入像素值的加权和(即F(i + k ,j + l )):
opencv|OpenCV图像学习八,图像归一化盒子滤波处理和图像高斯滤波处理实现
文章图片

h (k ,l ) 被称为内核,它是过滤器的系数。它有助于将滤波器可视化为在图像上滑动的系数窗口。
f() 表示输入的一副图像;
i、j 表示输入图像的行和列;
h(k,l) 表示卷积算子(卷积核,也可以叫掩膜),它的大小可以设定;
k, l 系数的大小又可以叫窗口大小(掩膜的大小,比如3*3);
g() 表示输出的像素值;
f() 的第一行,第一列像素点无法进入卷积算子的红色中心区域,不能进行卷积计算,只能进行相应的边缘像素处理。
opencv|OpenCV图像学习八,图像归一化盒子滤波处理和图像高斯滤波处理实现
文章图片

opencv|OpenCV图像学习八,图像归一化盒子滤波处理和图像高斯滤波处理实现
文章图片

opencv|OpenCV图像学习八,图像归一化盒子滤波处理和图像高斯滤波处理实现
文章图片

假设把图像分解成6x6的图像像素点矩阵,卷积过程:
6x6图像上面有个3x3的卷积窗口,每次移动一个像素格,依次从左向右,从上向下移动,红色中心点的位置依次移动,黄色的每个像个像素点值之和,取平均值赋给中心红色像素点,作为它卷积处理之后新的像素值。
一.归一化盒子滤波(均值滤波)
【opencv|OpenCV图像学习八,图像归一化盒子滤波处理和图像高斯滤波处理实现】
opencv|OpenCV图像学习八,图像归一化盒子滤波处理和图像高斯滤波处理实现
文章图片

API函数接口
blur(Mat src,Mat dst,Size(w,h),Point(-1,-1));
归一化过滤器是最简单的,每个输出像素是其内核邻居的平均值(所有这些像素都具有相同的权重)
参数说明:
src : 源输入图像
dst : 目标图像
Size() : 定义要使用的内核的大小(宽度为w像素,高度为h像素)
Point : 表示锚点(被评估的像素)相对于邻域的位置。如果存在负值,则将内核的中心视为锚点

二.高斯滤波器 (Gaussian Filter) 高斯滤波器是最有用的过滤器。通过将输入数组中的每个点与高斯卷积核核进行卷积,然后将它们相加以产生输出数组来完成高斯滤波。
opencv|OpenCV图像学习八,图像归一化盒子滤波处理和图像高斯滤波处理实现
文章图片

API 函数接口
GaussianBlur(Mat src,Mat dst,Size(w,h),sigmax,sigmay)
src:输入源图像
dst:目标图像
Size(w,h) : 要使用的内核的大小。w 和H必须是奇数和正数,否则将使用σX和σ?参数计算大小。
sigmax : x中的标准差。写0表示使用内核大小计算σx
sigmay : y的标准差。写0表示使用内核大小计算σy。

===============================================================
代码实现:

#include"stdafx.h" #include #include using namespace cv; int main(int argc, char** argv) { Mat src, dst; src = https://www.it610.com/article/imread("F:/photo/qx.jpg"); if (!src.data) { printf("could not load image"); return -1; } char input_title[] = "input image"; char output_title[] = "blur image"; namedWindow(input_title, 1); namedWindow(output_title, 1); imshow(input_title, src); blur(src, dst, Size(5, 5), Point(-1, -1)); imshow(output_title, dst); Mat gblur; GaussianBlur(src, gblur, Size(11, 11), 11, 11); imshow("gaussian blur", gblur); waitKey(0); return 0; }

=================================================================
图像处理效果:
opencv|OpenCV图像学习八,图像归一化盒子滤波处理和图像高斯滤波处理实现
文章图片








    推荐阅读