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


    OpenCV图像模糊原理

           模糊操作是图像处理中最简单和常用的操作之一,使用该操作的原因之一就为了给图像预处理时减低椒盐噪声。 图像模糊,也称为平滑操作,是一种简单且经常使用的图像处理操作,平滑主要是能减少噪声。

           要执行平滑操作,我们将对图像应用滤镜。最常见的滤波器类型是线性的,其中输出像素的值(即g(i ,j )被确定为输入像素值的加权和(即F(i + k ,j + l )):

    h (k ,l ) 被称为内核,它是过滤器的系数。它有助于将滤波器可视化为在图像上滑动的系数窗口。

    f() 表示输入的一副图像;

    i、j 表示输入图像的行和列;

    h(k,l) 表示卷积算子(卷积核,也可以叫掩膜),它的大小可以设定;

    k, l 系数的大小又可以叫窗口大小(掩膜的大小,比如3*3);

    g() 表示输出的像素值;

    f() 的第一行,第一列像素点无法进入卷积算子的红色中心区域,不能进行卷积计算,只能进行相应的边缘像素处理。

    假设把图像分解成6x6的图像像素点矩阵,卷积过程:

    6x6图像上面有个3x3的卷积窗口,每次移动一个像素格,依次从左向右,从上向下移动,红色中心点的位置依次移动,黄色的每个像个像素点值之和,取平均值赋给中心红色像素点,作为它卷积处理之后新的像素值。

    一.归一化盒子滤波(均值滤波)

    API函数接口

    blur(Mat src,Mat dst,Size(w,h),Point(-1,-1));

    归一化过滤器是最简单的,每个输出像素是其内核邻居的平均值(所有这些像素都具有相同的权重)

    参数说明:
    src : 源输入图像
    dst : 目标图像
    Size() : 定义要使用的内核的大小(宽度为w像素,高度为h像素)
    Point : 表示锚点(被评估的像素)相对于邻域的位置。如果存在负值,则将内核的中心视为锚点

    二.高斯滤波器 (Gaussian Filter)

    高斯滤波器是最有用的过滤器。通过将输入数组中的每个点与高斯卷积核核进行卷积,然后将它们相加以产生输出数组来完成高斯滤波。

     

    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。


    ===============================================================

    代码实现:

    1. #include"stdafx.h"
    2. #include
    3. #include
    4. using namespace cv;
    5. int main(int argc, char** argv)
    6. {
    7. Mat src, dst;
    8. src = imread("F:/photo/qx.jpg");
    9. if (!src.data)
    10. {
    11. printf("could not load image");
    12. return -1;
    13. }
    14. char input_title[] = "input image";
    15. char output_title[] = "blur image";
    16. namedWindow(input_title, 1);
    17. namedWindow(output_title, 1);
    18. imshow(input_title, src);
    19. blur(src, dst, Size(5, 5), Point(-1, -1));
    20. imshow(output_title, dst);
    21. Mat gblur;
    22. GaussianBlur(src, gblur, Size(11, 11), 11, 11);
    23. imshow("gaussian blur", gblur);
    24. waitKey(0);
    25. return 0;
    26. }

    =================================================================

    图像处理效果:

     

  • 相关阅读:
    LeetCode HOT 100 —— 33.搜索旋转排序数组
    2023大厂高频面试题之Vue篇(3)
    K8S的基础知识
    MySQL笔记上
    js---构造函数
    linux服务器添置一块新硬盘操作
    计算机五大部件是指什么
    王道数据结构6.2(图的应用)
    python实现微信新版v3的jsapi支付
    音视频编解码技术学习笔记
  • 原文地址:https://blog.csdn.net/weixin_44651073/article/details/126310717