OpenCV图像滤波(9)getGaussianKernel()函数的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

功能描述

cv::getGaussianKernel() 是 OpenCV 中的一个函数,用于生成一维高斯核。这种核通常用于实现高斯模糊滤波器,该滤波器可以平滑图像并减少噪声。高斯模糊是一种非常常用的图像处理技术,在许多计算机视觉任务中都有应用,比如边缘检测前的预处理。

函数返回高斯滤波器系数。

该函数计算并返回一个 ksize×1 的高斯滤波器系数矩阵:
G i = α ∗ e − ( i − ( ksize − 1 ) / 2 ) 2 / ( 2 ∗ sigma 2 ) , G_i= \alpha *e^{-(i-( \texttt{ksize} -1)/2)^2/(2* \texttt{sigma}^2)}, Gi=αe(i(ksize1)/2)2/(2sigma2),
其中,i=0…ksize−1 并且 而 α 是缩放因子,选择该因子是为了使得 ∑ i G i = 1 \sum_i G_i=1 iGi=1

生成的两个这样的核可以传递给 sepFilter2D。这些函数自动识别平滑核(一个对称核,其权重之和等于 1),并相应地处理它们。您也可以使用更高层次的 GaussianBlur。

函数原型


Mat cv::getGaussianKernel
(int 	ksize,double 	sigma,int 	ktype = CV_64F 
)		

参数

  • 参数ksize 孔径大小。它应该是奇数 (ksizemod2=1) 并且为正数。
  • 参数sigma 高斯标准差。如果它是非正数,它将根据 ksize 计算为 sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8。
  • 参数ktype 滤波器系数的类型。它可以是 CV_32F 或 CV_64F。

代码示例

include <opencv2/opencv.hpp>
#include <iostream>int main(int argc, char** argv)
{// 读取图像cv::Mat src = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/erik.jpg", cv::IMREAD_GRAYSCALE);if (src.empty()){std::cout << "Error: Image cannot be loaded!" << std::endl;return -1;}cv::Size sz2Sh( 400, 600 );cv::resize( src, src, sz2Sh, 0, 0, cv::INTER_LINEAR_EXACT );// 获取高斯核int ksize = 5;     // 孔径大小double sigma = 3.0;// 标准差cv::Mat kernel = cv::getGaussianKernel(ksize, sigma, CV_64F);// 创建二维高斯核cv::Mat kernel2D = kernel * kernel.t();// 应用高斯核cv::Mat filtered;cv::filter2D(src, filtered, -1, kernel2D);// 显示图像cv::namedWindow("Original Image", cv::WINDOW_NORMAL);cv::imshow("Original Image", src);cv::namedWindow("Filtered Image", cv::WINDOW_NORMAL);cv::imshow("Filtered Image", filtered);cv::waitKey(0);return 0;
}

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/396259.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

备考CISSP,看这一篇就够了!(附备考资料下载)

作者在2023年发布过一篇博文《不报辅导班一次性通过CISSP经验分享》&#xff0c;后台收到很多备考小伙伴的私信咨询&#xff0c;我就基于大家经常问的问题整理了此文章为大家答疑解惑&#xff0c;同时附上备考过程中作者收集到的全部资源&#xff08;见文末&#xff09;&#x…

EasyCVR视频汇聚平台云计算技术核心优势:高效、灵活与可扩展性深度解读

随着科技的飞速发展和社会的不断进步&#xff0c;视频监控已经成为现代社会治安防控、企业管理等场景安全管理中不可或缺的一部分。在这一背景下&#xff0c;EasyCVR视频汇聚平台凭借其强大的云计算技术&#xff0c;展现出了卓越的性能和广泛的应用前景。本文将深入解析EasyCVR…

Rust学习----Rust安装

如何安装Rust&#xff1f; 1.官网&#xff1a;https://www.rust-lang.org/zh-CN/ 2.Linux or Max: curl https://sh.rustup.rs -sSf | sh 3.Windows按官网指导安装。 4.Windows Subsystem for Linux&#xff1a; curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs…

JavaDS —— 位图(BitSet)与 布隆过滤器

位图 引入问题&#xff1a;给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中。 首先要注意 40 亿个数据如果使用 整型&#xff08;int) 来存放的话&#xff0c;就是要 40 亿个整型&#xff0c;一个整型有…

redis面试(十一)锁超时

boolean res lock.tryLock(100, 10, TimeUnit.SECONDS); RedissonLock里面有这样一个方法tryLock()&#xff0c;意思是尝试获取锁的结果。 最大等待时间100s&#xff0c;并且获取到锁之后&#xff0c;10s之内没有释放的话&#xff0c;锁会自动失效。 尝试获取锁超时 time …

【vue3|第20期】vue3中Vue Router路由器工作模式

日期&#xff1a;2024年8月6日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xff…

LiveNVR监控流媒体Onvif/RTSP常见问题-页面上传SSL证书配置开启 HTTPS 服务?什么时候必须要开启HTTPS服务?

LiveNVR常见问题-页面上传SSL证书配置开启 HTTPS 服务&#xff1f;什么时候必须要开启HTTPS服务&#xff1f; 1、配置开启HTTPS1.1、准备https证书1.2、配置HTTPS端口1.3、配置证书路径1.3、 页面上传SSL证书 2、验证HTTPS服务3、为什么要开启HTTPS4、RTSP/HLS/FLV/RTMP拉流Onv…

IROS2024 | DarkGS:学习神经照明和3D高斯重新照明,用于黑暗中机器人探索

DarkGS&#xff1a;学习神经照明和3D高斯重新照明&#xff0c;用于黑暗中机器人探索 论文标题&#xff1a;DarkGS: Learning Neural Illumination and 3D Gaussians Relighting for Robotic Exploration in the Dark 论文地址&#xff1a;https://arxiv.org/abs/2403.10814 研…

PasteSpider快速上手开发者专用部署助手

【【【PasteSpider的安装--一键拉取镜像】】】 (首次使用&#xff0c;建议使用MemorySqlite的模式&#xff0c;只要2行代码即可启动一个PasteSpider&#xff0c;第一行拉取PasteSpider的镜像&#xff0c;第二行启动PasteSpider容器&#xff01;) 安装PasteSpider之后&#xf…

文件上传绕过最新版安全狗

本文来源无问社区&#xff0c;更多实战内容&#xff0c;渗透思路可前往查看http://www.wwlib.cn/index.php/artread/artid/9960.html http分块传输绕过 http分块传输⼀直是⼀个很经典的绕过⽅式&#xff0c;只是在近⼏年分块传输⼀直被卡的很死&#xff0c;很多waf都开始加 …

8.9套题

A. 猴猴吃苹果 题意&#xff1a;给定根节点k&#xff0c;求访问点的顺序&#xff0c;使得每次从上一个点到当前点的权值最大。访问过的点权值为0。权值一样时&#xff0c;输出最小编号 思路&#xff1a;由于是双向边&#xff0c;先求根节点到每一个节点的距离值。在第一轮中&…

【算法题】整数反转,一文彻底搞清!

目录 一、题目描述 二、解题思路 1、整数转为字符串 2、数学运算 三、参考答案 一、题目描述 整数反转 给你一个32位的有符号整数x&#xff0c;返回将x中的数字部分反转后的结果。 如果反转后整数超过32位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 …

58 mysql 存储引擎之 MEMORY

前言 我们这里来看一下 MEMORY 存储引擎, 我们常见的那些 临时表什么的, 都是基于 MEMORY 在之前 我们也曾经调试过 相关内存临时表的信息 它主要是 使用 hp_scan, hp_find_record 等等 api 来操作内存中的信息 我们这里基于 information_schema.TABLES 这张基于 MEMORY 的…

加速 Spring Boot 3.3 迁移

1. 关键要点 为什么你应该升级你的服务迁移到 Spring Boot 3.3 时需要更新的内容OpenRewrite 如何帮助使升级更轻松、更快捷 2. 前言 现在Spring Boot 已经到了3.3&#xff0c;但是你在哪里&#xff1f;在过去的 3.x 版本更新中&#xff0c;我们看到了许多新功能&#xff0c;…

从EN标准到REACH法规:全面掌握CE认证洗涤剂的安全要求

一、什么是CE认证&#xff1f; CE认证&#xff08;Conformit Europenne&#xff09;是产品符合欧洲经济区&#xff08;EEA&#xff09;安全、健康、环保和消费者保护要求的标志。对于洗涤剂而言&#xff0c;CE认证证明该产品符合欧洲相关法规和标准&#xff0c;确保其在使用过…

牛客JS题(三十四)监听对象

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; defineProperty实现深度监视递归终止条件引用传值闭包与作用域 题干&#xff1a; 我的答案 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /></head&…

ue5正确导入资源 content(内容),content只能有一个

把资源content下的东西&#xff0c;全部拷贝&#xff0c;放在项目的content下 content只能有一个

【HarmonyOS NEXT星河版开发学习】小型测试案例02-华为登录

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面&#xff08;还未发布&#xff09; 前言 通过此案例&#xff0c;不得不感叹鸿蒙的强大了&#xff0c;仅仅使用了26行代码就构建出来了这个界面&#xff0c;确实特别方便&#…

【git】简易的命令行入门教程

文章目录 1.Git 全局设置2.创建 git 仓库3.已有仓库 1.Git 全局设置 git config --global user.name "******" git config --global user.email "******qq.com"2.创建 git 仓库 mkdir ****** cd ****** git init touch README.md git add README.md git…

如何在notebook中运行nodejs

在 Python 生态系统的推动下&#xff0c;机器学习和人工智能日益流行&#xff0c;这带来了计算笔记本的概念。这些交互式计算平台主要是为以 Python 为中心的数据科学应用而开发的&#xff0c;它们将代码、计算输出、解释性文本和多媒体合并成一个有内聚力的文档。 作为 JavaS…