码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【OpenCV4】高斯滤波 cv::GaussianBlur() 用法详解和代码示例(c++)


    作用原理:

    图像采集过程中,常常会引入高斯噪声,即这是一种按照高斯曲线进行分布的噪声
    在这里插入图片描述
    所以使用高斯滤波来进行图像去噪

    高斯滤波考虑了像素离开滤波器中心的距离影响,中心位置为高斯分布均值,比如上图为 0

    根据高斯分布公式,和滤波器所覆盖像素距离中心的距离,就可以计算每个像素被滤波后的像素值,即执行了一个卷积操作

    函数原型:

    void cv::GaussianBlur	(	InputArray 	src,
    							OutputArray 	dst,
    							Size 	ksize,
    							double 	sigmaX,
    							double 	sigmaY = 0,
    							int 	borderType = BORDER_DEFAULT 
    							)	
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    解析:

    • src:输入图像,可以是任意通道数
    • dst:输出图像,与输入图像具有相同的尺寸,通道数,和类型
    • ksize:滤波器尺寸,可以不是正方形,但是必须为正奇数(如果设置为 0,则由输入的标准差来计算所需的尺寸)
    • sigmaX:X 方向高斯滤波器标准差
    • sigmaY:Y 方向高斯滤波器标准差(如果输入 0,则会被设置成等于 sigmaX,如果 sigmaX 和 sigmaY 都输入 0,则会根据滤波器尺寸来计算得到标准差)
    • borderType:像素外推法

    代码示例:

    void TestGaussianBlur()
    {
        cv::Mat lena = cv::imread("lena.jpg", 1);
        cv::Mat blurred_3x3;
        cv::Mat blurred_5x5;
        cv::Mat blurred_7x7;
        cv::GaussianBlur(lena, blurred_3x3, cv::Size(3, 3), 0, 0);
        cv::GaussianBlur(lena, blurred_5x5, cv::Size(5, 5), 0, 0);
        cv::GaussianBlur(lena, blurred_7x7, cv::Size(7, 7), 0, 0);
    
        cv::imshow("lena", lena);
        cv::imshow("blurred_3x3", blurred_3x3);
        cv::imshow("blurred_5x5", blurred_5x5);
        cv::imshow("blurred_7x7", blurred_7x7);
        cv::waitKey(0);
    
        return;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    原图:

    在这里插入图片描述

    使用 3X3 的 kernel:
    在这里插入图片描述
    使用 5X5 的 kernel:
    在这里插入图片描述
    使用 7X7 的 kernel:
    在这里插入图片描述
    可以看到,kernel 越大,去除噪声(平滑)的效果越明显,但同时,图像也会越模糊!

  • 相关阅读:
    模拟栈(模板)
    OpenFOAM类库介绍(三)隐式扩散项
    【kubernetes】带你入门k8s中的HPA
    uniapp AES加密解密
    基于 chinese-roberta-wwm-ext 微调训练中文命名实体识别任务
    web前端要接触的技术领域与关键要素
    基于元数据的无代码平台设计与开发概述
    血常规、尿检等指标就能识别卵巢癌!中山大学刘继红团队牵头,四大医学院联合构建 AI 融合模型
    既然有了量化交易,技术分析还有存在的必要么?有专门收割自动交易系统的策略吗?
    【Bug】Ubuntu 有线设置打不开无反应
  • 原文地址:https://blog.csdn.net/qq_42067550/article/details/126343606
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号