当前位置: 首页 > news >正文

OpenCV 图形API(24)图像滤波-----双边滤波函数bilateralFilter()

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

算法描述

应用双边滤波到图像。

该函数对输入图像应用双边滤波,如 http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html 所描述的那样。bilateralFilter 可以很好地减少不需要的噪声,同时保持边缘相当锐利。然而,与大多数滤波器相比,它的速度非常慢。

Sigma值:为了简单起见,你可以将两个sigma值设置为相同。如果它们较小(< 10),滤波器不会有太大效果;而如果它们较大(> 150),则会产生很强的效果,使图像看起来“卡通化”。

滤波器大小:大的滤波器(d > 5)非常慢,因此建议在实时应用中使用 d=5,在需要大量噪声过滤的离线应用中可以考虑使用 d=9。

此滤波器不支持原地操作。

注意
函数文本ID是 “org.opencv.imgproc.filters.bilateralfilter”

函数原型

GMat cv::gapi::bilateralFilter 	
(const GMat &  	src,int  	d,double  	sigmaColor,double  	sigmaSpace,int  	borderType = BORDER_DEFAULT 
) 	

参数

  • 参数 src: 源8位或浮点型,单通道或三通道图像。
  • 参数 d: 在滤波过程中使用的每个像素邻域的直径。如果它不大于零,则从 sigmaSpace 计算得出。
  • 参数 sigmaColor: 颜色空间中的滤波sigma值。该参数值越大表示颜色差异的影响越小,导致在颜色相近的像素之间混合更大的区域。
  • 参数 sigmaSpace: 坐标空间中的滤波sigma值。该参数值越大表示距离的影响越小,只要它们的颜色足够接近(参见 sigmaColor)。当 d>0 时,它指定邻域大小而不考虑 sigmaSpace。否则,d 与 sigmaSpace 成正比。
  • 参数 borderType: 边界模式用于外推图像外部的像素,请参阅 BorderTypes

返回值

返回与 src 相同大小和类型的输出图像。

代码示例

#include <opencv2/gapi/core.hpp>     // 包含G-API核心功能
#include <opencv2/gapi/imgproc.hpp>  // 包含imgproc模块,可能需要的其他G-API模块
#include <opencv2/opencv.hpp>int main()
{// 加载输入图像cv::Mat src = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png" );if ( src.empty() ){std::cerr << "Error: Image cannot be loaded!" << std::endl;return -1;}// 定义双边滤波参数int d             = 9;                   // 邻域直径double sigmaColor = 100;                  // 颜色空间的标准差double sigmaSpace = 100;                  // 坐标空间的标准差int borderType    = cv::BORDER_DEFAULT;  // 边界填充模式// 定义G-API计算图来应用双边滤波cv::GComputation comp( [ d, sigmaColor, sigmaSpace, borderType ]() {cv::GMat in;  // 输入:源图像cv::GMat out = cv::gapi::bilateralFilter( in, d, sigmaColor, sigmaSpace, borderType );return cv::GComputation( cv::GIn( in ), cv::GOut( out ) );} );// 输出结果cv::Mat dst;try{// 执行计算图并传入实际的cv::Mat数据comp.apply( cv::gin( src ), cv::gout( dst ) );// 显示结果cv::imshow( "Original Image", src );cv::imshow( "Filtered Image", dst );cv::waitKey( 0 );  // 等待按键事件}catch ( const std::exception& e ){std::cerr << "Exception: " << e.what() << std::endl;return -1;}return 0;
}

运行结果

在这里插入图片描述

相关文章:

OpenCV 图形API(24)图像滤波-----双边滤波函数bilateralFilter()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 应用双边滤波到图像。 该函数对输入图像应用双边滤波&#xff0c;如 http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Fil…...

【图像处理基石】什么是影调?并用python实现一个哈苏色彩影调

影调是摄影语言的核心&#xff0c;通过控制明暗、虚实与色彩&#xff0c;可精准传达创作意图。实际选择需结合主题情感、光线条件及画面结构&#xff0c;灵活运用高调、低调或冷暖色调&#xff0c;以强化视觉表现力。 一、影调的定义 影调指画面中明暗、虚实、色彩的层次与对比…...

融智学三大定律:打开人机协同智慧大门的钥匙

...

MySQL行列转换

创建一个sc表并插入数据 方法一: select distinct uid, (select score from sc where s.uiduid and course语文)语文, (select score from sc where s.uiduid and course数学)数学, (select score from sc where s.uiduid and course英语)英语 from sc s; 方法二: select * fro…...

cookie和session哪个生成的时间早

Cookie 和 Session 的出现时间都可以追溯到 Web 开发的早期阶段&#xff0c;但它们的生成顺序在实际应用中通常是先生成 Session&#xff0c;然后通过 Cookie 来存储 Session ID。 详细解释&#xff1a; Session 的生成过程 • 用户请求服务器&#xff1a; • 用户首次访问网…...

sh脚本删除指定后缀.txt的文件,保留6个月的数据

1、linux下脚本删除指定后缀.txt和.path的文件&#xff0c;保留6个月的数据&#xff1a; 下面代码内容&#xff1a; #!/bin/bash # 指定要删除文件的路径列表 paths("/data/fail")# 获取当前系统日期6个月之前的日期 six_months_ago$(date -d "-6 months"…...

嵌入式Linux按键监控模块详解:实现设备重启与长按检测

嵌入式Linux按键监控模块详解&#xff1a;实现设备重启与长按检测 在嵌入式Linux设备开发中&#xff0c;物理按键仍然是用户与设备交互的重要方式。本文将分享一个轻量级但功能完整的按键监控模块&#xff0c;它可以精确识别按键的短按和长按事件&#xff0c;并执行对应操作如…...

[错误经验 坑]关于UDP服务器和客户端通信使用的recvfrom的输出型参数len没有被初始化导致的问题

[错误经验 坑]关于UDP服务器和客户端通信使用的recvfrom的输出型参数len没有被初始化导致的问题 水墨不写bug 文章目录 一、困惑&#xff1a;二、解答&#xff1a;&#xff08;1&#xff09;函数原型1. int sockfd2. void *buf3. size_t len4. int flags5. struct sockaddr *sr…...

KaiwuDB:面向AIoT场景的多模融合数据库,赋能企业数字化转型

引言 在万物互联的AIoT时代&#xff0c;企业面临着海量时序数据处理、多模数据融合和实时分析等挑战。KaiwuDB应运而生&#xff0c;作为一款面向AIoT场景的分布式、多模融合、支持原生AI的数据库产品&#xff0c;为企业提供了一站式数据管理解决方案。 产品概述 KaiwuDB是一…...

Web3 的云基础设施正在成型,Polkadot 2.0 用三项技术改写“上链成本”

在Web3基础设施内卷加剧的今天&#xff0c;“如何以更低成本、更大灵活性部署一条高性能应用链”正成为开发者们最关心的问题。而刚刚走出“技术慢热”误区的Polkadot&#xff0c;正在用一套名为 Polkadot 2.0 的架构升级方案&#xff0c;重新定义这一问题的解法。 这套升级最…...

Elasticsearch 学习规划

Elasticsearch 学习规划 明确学习目标与动机 场景化需求分析 - **S**&#xff1a;掌握Elasticsearch架构体系&#xff0c;熟练使用Elasticsearch 进行数据分析,Elasticsearch结合java 项目落地案例 - **M**&#xff1a;搜索和Elasticsearch相关GitHub项目 - **A**&#xff1a;每…...

OpenHarmony如何编译安装系统应用(以settings设置为例)

开发环境 1.OpenHarmony 2.DevEco Studio 3 .Full Sdk 实现步骤 1.获取设置应用源码 https://gitee.com/openharmony/applications_settings/tree/OpenHarmony-v5.0.0-Release/ 2,使用 DevEco Studio 和 Full SDK对系统应用进行签名,默认工程是未配置签名的状态,所构建…...

手撕 STL 之—— list

目录 引言 1, list_node类及其构造函数 2, list类的创建 3, list基本功能函数 3_1&#xff0c; 构造函数 3_2&#xff0c;push_back 3_3&#xff0c;push_front 3_4&#xff0c; pop_back 3_5&#xff0c;pop_front 4&#xff0c;迭代器 (重点) 4_1&#xff0c;如何设…...

Med-R1论文阅读理解

论文介绍 这篇论文介绍了一个名为 Med-R1 的新方法&#xff0c;用于提升多模态视觉语言模型&#xff08;VLM&#xff09;在医学图像理解和推理任务中的泛化能力和可解释性。下面是对整篇论文的简洁总结&#xff1a; ⸻ &#x1f9e0; 核心思想 • 当前医学 VLM 多依赖于监督…...

微服务相关

1.SpringCloud有哪些常用组件&#xff1f;分别是什么作用&#xff1f; 注册中心&#xff1a;nacos 负载均衡&#xff1a;rabbion/LoadBalancer 网关&#xff1a;gateway 服务熔断&#xff1a;sential 服务调用&#xff1a;Feign 2.服务注册发现的基本流程是怎样的&#x…...

Linux vagrant 导入Centos到virtualbox

前言 vagrant 导入centos 虚拟机 前提要求 安装 virtualbox 和vagrant<vagrant-disksize> (Linux 方式 Windows 方式) 创建一键部署centos 虚拟机 /opt/vagrant 安装目录/opt/VirtualBox 安装目录/opt/centos8/Vagrantfile &#xff08;可配置网络IP&#xff0c;内存…...

Spring Boot MongoDB 分页工具类封装 (新手指南)

Spring Boot MongoDB 分页工具类封装 (新手指南) 目录 引言&#xff1a;为何需要分页工具类&#xff1f;工具类一&#xff1a;PaginationUtils - 简化 Pageable 创建 设计目标代码实现 (PaginationUtils.java)如何使用 PaginationUtils 工具类二&#xff1a;PageResponse<…...

第七章 指针

2024-04 2023-10 A 2023-04 2022-10 2022-04 2021-10 2021-04 2020-10 2020-04...

20年AB1解码java

P8706 [蓝桥杯 2020 省 AB1] 解码 - 洛谷 详细代码如下&#xff1a; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner innew Scanner(System.in); // 接收输入的字符串char [] c in.next().toCharArray(); // 接收 还原的字符…...

《Java实战:密码加密算法实现与代码解析》

文章目录 一、需求背景二、代码逐模块解析1. 主程序入口2. 密码输入模块3. 加密处理模块4. 结果拼接模块 三、完整代码示例四、运行示例五、优化方向&#xff08;下篇预告&#xff09; 一、需求背景 实现一个4位数字密码的简单加密系统&#xff0c;规则如下&#xff1a; 输入…...

AllData数据中台升级发布 | 支持K8S数据平台2.0版本

&#x1f525;&#x1f525; AllData大数据产品是可定义数据中台&#xff0c;以数据平台为底座&#xff0c;以数据中台为桥梁&#xff0c;以机器学习平台为中层框架&#xff0c;以大模型应用为上游产品&#xff0c;提供全链路数字化解决方案。 ✨杭州奥零数据科技官网&#xf…...

Jupyter notebook使用技巧

一、打开指定文件夹 在快捷方式目标中&#xff0c;使用如下代码 anaconda3\python.exe anaconda3\cwp.py anaconda3 anaconda3\python.exe anaconda3\Scripts\jupyter-notebook-script.py --notebook-dirD:\code\python...

6.3es新特性web worker

Web Worker 是 HTML5 提供的多线程技术&#xff0c;允许在浏览器后台创建独立线程执行 JavaScript 代码&#xff0c;解决主线程因耗时任务导致的 界面卡顿 问题。 核心特性 线程隔离&#xff1a;Worker 线程无法直接操作 DOM 或访问 window 对象通信机制&#xff1a;通过 pos…...

基于 OpenHarmony 5.0 的星闪轻量型设备应用开发——Ch3 设备驱动开发

写在前面&#xff1a;本篇是系列文章《基于 OpenHarmony 5.0 的星闪轻量型设备应用开发》的第 3 章。本篇从 GPIO、PWM、I2C、UART 以及 ADC 等方面对基于 OpenHarmony 5.0 的 WS63 设备驱动开发进行了详细的介绍。本篇的篇幅较长&#xff0c;建议先收藏再阅读。 3.1 OpenHarmo…...

iphone各个机型尺寸

以下是苹果&#xff08;Apple&#xff09;历代 iPhone 机型 的屏幕尺寸、分辨率及其他关键参数汇总&#xff08;截至 2023年10月&#xff0c;数据基于官方发布信息&#xff09;&#xff1a; 一、标准屏 iPhone&#xff08;非Pro系列&#xff09; 机型屏幕尺寸&#xff08;英寸…...

OfficePlus去掉PDF文件右键菜单里的PDF转换

今天在吾爱破解论坛看到一个求助帖&#xff0c;说是OfficePlus&#xff0c;安装后&#xff0c;PDF文件的右键菜单里多了PDF转换&#xff0c;想去掉&#xff0c;不知道怎么弄。底下的回复基本都是百度复制或者AI搜索出的答案&#xff0c;大致就是找注册表里CLASSID下的菜单栏相关…...

Linux驱动开发进阶(七)- DRM驱动程序设计

文章目录 1、前言2、DRAM(KMS、GEM)2.1、KMS2.2、GEM 3、DRM3.1、驱动结构体3.2、设备结构体3.3、DRM驱动注册3.4、DRM模式设置3.4.1、plane初始化3.4.2、crtc初始化3.4.3、encoder初始化3.4.4、connect初始化 4、示例说明5、DRM Simple Display框架6、DRM热插拔7、DRM中的plan…...

Parasoft C++Test软件单元测试_条件宏和断言宏使用方法的详细介绍

系列文章目录 Parasoft C++Test软件静态分析:操作指南(编码规范、质量度量)、常见问题及处理 Parasoft C++Test软件单元测试:操作指南、实例讲解、常见问题及处理 Parasoft C++Test软件集成测试:操作指南、实例讲解、常见问题及处理 进阶扩展:自动生成静态分析文档、自动…...

vue辅助工具(vue系列二)

目录 第一章、安装周边库1.1&#xff09;状态管理&#xff1a;Pinia1.2&#xff09;路由管理&#xff1a;Router1.3&#xff09;HTTP 客户端&#xff1a;Axios1.4&#xff09;UI 组件库&#xff1a;Element 第二章、下载Vue插件并安装2.1&#xff09;安装开发者工具2.1.1&#…...

WPF 五子棋项目文档

WPF 五子棋项目文档 1. 项目概述 本项目是一个使用 Windows Presentation Foundation (WPF) 技术栈和 C# 语言实现的桌面版五子棋&#xff08;Gomoku&#xff09;游戏。它遵循 MVVM&#xff08;Model-View-ViewModel&#xff09;设计模式&#xff0c;旨在提供一个结构清晰、可…...

UniApp 实现兼容 H5 和小程序的拖拽排序组件

如何使用 UniApp 实现一个兼容 H5 和小程序的 九宫格拖拽排序组件&#xff0c;实现思路和关键步骤。 一、实现目标 支持拖动菜单项改变顺序拖拽过程实时预览移动位置拖拽松开后自动吸附回网格兼容 H5 和小程序平台 二、功能结构拆解以及完整代码 完整代码&#xff1a; <…...

谷歌推出统一安全平台-一个平台实现跨云网端主动防护

&#x1f44b; 今天要给大家带来一个超级棒的消息&#xff01;谷歌云推出了全新的“谷歌统一安全平台”&#xff0c;感觉我们的网络安全问题有救啦&#xff01;&#x1f604; 随着企业基础设施变得越来越复杂&#xff0c;保护它们也变得越来越难。攻击面不断扩大&#xff0c;安…...

众趣科技丨沉浸式 VR 体验,助力酒店民宿数字化营销宣传

随着旅游季的到来&#xff0c;各地的旅游景区开始“摩拳擦掌”推出各种活动&#xff0c;吸引更多游客来此游玩。 自去年以来&#xff0c;冰雪游热度持续上升&#xff0c;尤其是对于满心期待的南方游客来说&#xff0c;哈尔滨仍是冰雪旅游的热门目的地。据美团数据显示&#xff…...

DAY05:【pytorch】图像预处理

1、torchvision 功能&#xff1a;计算视觉工具包 torchvision.transforms&#xff1a;常用的图像预处理方法torchvision.datasets&#xff1a;常用数据集的 dataset 实战&#xff0c;MINIST&#xff0c;CIFAR-10&#xff0c;ImageNet等torchvision.model&#xff1a;常用的模…...

真实企业级K8S故障案例:ETCD集群断电恢复与数据保障实践

背景描述 某跨境电商平台生产环境使用Kubernetes&#xff08;v1.23.17&#xff09;管理500微服务。某日机房突发市电中断&#xff0c;UPS未能及时接管导致&#xff1a; 3节点ETCD集群&#xff08;v3.5.4&#xff09;全部异常掉电 Control-Plane节点无法启动api-server 业务P…...

rbd块设备的id修改

背景 看到有这个需求&#xff0c;具体碰到什么场景了不太清楚&#xff0c;之前做过rbd的重构的研究&#xff0c;既然能重构&#xff0c;那么修改应该是比重构还要简单一点的&#xff0c;我们具体看下怎么操作 数据结构分析 rbd的元数据信息 [rootlab104 ~]# rbd create tes…...

WP最主题专业的wordpress主题开发

WP最主题&#xff08;wpzui.com&#xff09; WP最主题是一个提供高品质WordPress主题的平台。它注重主题的设计和功能&#xff0c;旨在为用户提供美观且实用的主题选择。其主题通常具有良好的用户体验、丰富的自定义选项以及优化的性能&#xff0c;能够满足不同类型的网站搭建…...

HomeAssistant本地化部署结合内网穿透打造跨网络智能家居中枢

文章目录 前言1. 添加镜像源2. 部署HomeAssistant3. HA系统初始化配置4. HA系统添加智能设备4.1 添加已发现的设备4.2 添加HACS插件安装设备 5. 安装cpolar内网穿透5.1 配置HA公网地址 6. 配置固定公网地址 推荐 ​ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂…...

# 实时人脸性别与年龄识别:基于OpenCV与深度学习模型的实现

实时人脸性别与年龄识别&#xff1a;基于OpenCV与深度学习模型的实现 在当今数字化时代&#xff0c;计算机视觉技术正以前所未有的速度改变着我们的生活与工作方式。其中&#xff0c;人脸检测与分析作为计算机视觉领域的重要分支&#xff0c;已广泛应用于安防监控、智能交互、…...

SAP-ABAP:SAP的Open SQL和Native SQL详细对比

在SAP ABAP开发中,Open SQL和Native SQL是两种操作数据库的方式,它们的核心区别在于可移植性、功能范围及底层实现机制。以下是详细对比: 1. Open SQL:深入解析 1.1 核心特性 数据库抽象层 Open SQL 由 SAP 内核的 Database Interface (DBI) 转换为目标数据库的 SQL(如 …...

基于大模型构建金融客服的技术调研

OpenAI-SB api接口 https://openai-sb.com/ ChatGPT与Knowledge Graph (知识图谱)分享交流 https://www.bilibili.com/video/BV1bo4y1w72m/?spm_id_from333.337.search-card.all.click&vd_source569ef4f891360f2119ace98abae09f3f 《要研究的方向和准备》 https://ww…...

Python设计模式:命令模式

1. 什么是命令模式&#xff1f; 命令模式是一种行为设计模式&#xff0c;它将请求封装为一个对象&#xff0c;从而使您能够使用不同的请求、队列或日志请求&#xff0c;以及支持可撤销操作。 命令模式的核心思想是将请求的发送者与请求的接收者解耦&#xff0c;使得两者之间的…...

30天学Java第八天——设计模式

装饰器模式 Decorator Pattern 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许通过动态地添加功能来扩展对象的行为&#xff0c;而不需要修改原有的类。 这种模式通常用于增强对象的功能&#xff0c;与继承相比&#xff0c;使用…...

Spring事务系列 三

Spring事务的传播机制 Spring事务系列 一-CSDN博客 Spring事务系列 二-CSDN博客 文章目录 系列文章目录 目录 文章目录 前言 一、Spring事务的传播机制 Propagation.REQUIRED: Propagation.SUPPORTS: Propagation.MANDATORY: Propagation.REQUIRES_NEW: Propagation.NOT_SUPPO…...

文件上传做题记录

1&#xff0c;[SWPUCTF 2021 新生赛]easyupload2.0 直接上传php 再试一下phtml 用蚁剑连发现连不上 那就只要命令执行了 2&#xff0c;[SWPUCTF 2021 新生赛]easyupload1.0 当然&#xff0c;直接上传一个php是不行的 phtml也不行&#xff0c;看下是不是前端验证&#xff0c;…...

机器学习的监督学习与无监督学习

机器学习主要分为监督学习和无监督学习两大类&#xff0c;两者的核心区别在于数据是否带有标签&#xff08;Label&#xff09;。以下是它们的详细对比和说明&#xff1a; 1. 监督学习&#xff08;Supervised Learning&#xff09; 定义&#xff1a;通过带有标签的训练数据&…...

C++ 入门三:函数与模板

一、内联函数&#xff1a;编译期嵌入的 “高效函数” 1. 什么是内联函数&#xff1f; 核心特性&#xff1a;在编译阶段&#xff0c;内联函数的函数体会直接嵌入到调用它的代码中&#xff0c;避免了普通函数的调用开销&#xff08;如压栈、跳转、返回&#xff09;。语法&#…...

解析券商qmt的优缺点

现在已经对于大QMT进行了一步步的深入了解与学习&#xff0c;也已经开始积木式搭建策略&#xff0c;进行交易了&#xff0c;但是&#xff0c;随时不断的深入&#xff0c;发现的问题也越来越多。下面开始逐一解析&#xff1a; 首页 | 迅投知识库 这是详细的说明。 目前券商给大…...

CSE lesson2 chrony服务器

CSE lesson2 chrony服务器 timedatectl命令 NTP(network time protocal)网络时间协议&#xff0c;时钟服务器同步时间的时候会使用到该协议进行时间同步。 #关闭/开启时间同步服务 [rootlocalhost ~]# timedatectl set-ntp 0/1#设置时间&#xff08;必须关闭时间同步服务才能…...

时光交响曲:杭州的科技与传统交响

故事背景 故事发生在中国浙江杭州&#xff0c;以现代科技与文化传统的交融为背景&#xff0c;展现了人与自然、历史的深刻联系。在晨曦中的茶园、宁静的运河书屋、科技堤坝等地方&#xff0c;每个场景都充满了生机与活力&#xff0c;展示了科技如何赋予传统文化新的生命&#x…...