c++视觉处理---均值滤波
均值滤波
cv::blur()
函数是OpenCV中用于应用均值滤波的函数。均值滤波是一种简单的平滑技术,它计算每个像素周围像素的平均值,并用该平均值替代原始像素值。这有助于降低图像中的噪声,并可以模糊图像的细节。
以下是cv::blur()
函数的基本用法:
void cv::blur(cv::InputArray src, // 输入图像cv::OutputArray dst, // 输出图像cv::Size ksize, // 滤波核大小,通常是一个奇数cv::Point anchor = cv::Point(-1,-1), // 锚点位置,默认为核的中心int borderType = cv::BORDER_DEFAULT // 边界处理方式,默认为BORDER_DEFAULT
);
参数解释:
src
: 输入图像。dst
: 输出图像,将平滑后的图像存储在这里。ksize
: 滤波核的大小,通常是一个奇数,例如(3, 3)
或(5, 5)
。较大的核将导致更强烈的平滑效果。anchor
: 锚点位置,默认为(-1, -1)
,表示核的中心。borderType
: 边界处理方式,控制在图像边界处如何处理滤波操作。通常使用默认值cv::BORDER_DEFAULT
。
以下是示例代码,演示如何使用cv::blur()
函数进行均值滤波:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>int main() {// 读取图像cv::Mat image = cv::imread("your_image.jpg", cv::IMREAD_COLOR);if (image.empty()) {std::cerr << "Could not open or find the image!" << std::endl;return -1;}// 创建一个平滑后的图像副本cv::Mat smoothed_image;// 使用均值滤波平滑图像cv::blur(image, smoothed_image, cv::Size(5, 5)); // 5x5的均值滤波器// 显示原始图像和平滑后的图像cv::namedWindow("Original Image", cv::WINDOW_NORMAL);cv::namedWindow("Smoothed Image", cv::WINDOW_NORMAL);cv::imshow("Original Image", image);cv::imshow("Smoothed Image", smoothed_image);cv::waitKey(0);return 0;
}
这个示例使用cv::blur()
函数将一个5x5的均值滤波器应用于输入图像,从而平滑图像。您可以根据需要选择不同大小的滤波器核以获得不同程度的平滑效果。确保已正确配置OpenCV以构建和运行C++代码。
使用相机实时均值滤波
#include <opencv2/opencv.hpp>// 全局变量,用于存储滑动条的值
int kernelSize = 5;// 回调函数,用于处理滑动条的值变化
void onTrackbar(int value, void* userdata) {// 从userdata中获取VideoCapture对象cv::VideoCapture* cap = static_cast<cv::VideoCapture*>(userdata);// 创建窗口cv::namedWindow("Live Camera Feed", cv::WINDOW_NORMAL);while (true) {cv::Mat frame;// 从相机中读取一帧图像*cap >> frame;if (frame.empty()) {std::cerr << "Failed to read frame from the camera!" << std::endl;break;}// 创建一个平滑后的图像副本cv::Mat smoothed_frame;// 使用均值滤波平滑图像,核的大小由滑动条值决定cv::blur(frame, smoothed_frame, cv::Size(kernelSize, kernelSize));// 显示实时摄像头图像和平滑后的图像cv::imshow("Live Camera Feed", smoothed_frame);cv::imshow("Smoothed Frame", frame);// 检查键盘输入,如果按下ESC键,退出循环char key = cv::waitKey(1);if (key == 27) // 27对应ESC键的ASCII码break;}
}int main() {// 打开本地相机(通常相机编号为0表示默认相机,如果有多个相机,则可能需要调整编号)cv::VideoCapture cap(0);if (!cap.isOpened()) {std::cerr << "Could not open the camera!" << std::endl;return -1;}// 创建窗口cv::namedWindow("Live Camera Feed", cv::WINDOW_NORMAL);// 创建滑动条cv::createTrackbar("Kernel Size", "Live Camera Feed", &kernelSize, 30, onTrackbar, &cap);// 初始化一次滑动条回调函数以显示默认值onTrackbar(kernelSize, &cap);// 释放摄像头资源和关闭窗口cap.release();cv::destroyAllWindows();return 0;
}
相关文章:
c++视觉处理---均值滤波
均值滤波 cv::blur()函数是OpenCV中用于应用均值滤波的函数。均值滤波是一种简单的平滑技术,它计算每个像素周围像素的平均值,并用该平均值替代原始像素值。这有助于降低图像中的噪声,并可以模糊图像的细节。 以下是cv::blur()函数的基本用…...
QT基础入门——Qt事件(五)
前言: 事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件在对用户操作做出响应时发出,如键盘事件等&#x…...
自学黑客方法-----(网络安全)
如果你想自学网络安全,首先你必须了解什么是网络安全!,什么是黑客!! 1.无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如 Web 安全技术,既有 Web 渗透2.也有 Web 防…...
Dockerfile自定义容器
1、Dockerfile Dockerfile 是用于构建 Docker 镜像的文本文件,其中包含一系列的指令和配置,用于定义镜像的构建过程。通过 Dockerfile,你可以定义镜像的基础操作系统、依赖、环境设置、应用程序等信息,从而实现可复制、自动化的镜…...
(5)SpringMVC处理携带JSON格式(“key“:value)请求数据的Ajax请求
SpringMVC处理Ajax 参考文章数据交换的常见格式,如JSON格式和XML格式 请求参数的携带方式 浏览器发送到服务器的请求参数有namevalue&...(键值对)和{key:value,...}(json对象)两种格式 URL请求会将请求参数以键值对的格式拼接到请求地址后面,form表单的GET和POST请求会…...
【iOS】——仿写计算器
文章目录 一、实现思路二、实现方法三、判错处理 一、实现思路 先搭建好MVC框架,接着在各个模块中实现各自的任务。首先要创建好UI界面,接着根据UI界面的元素来与数据进行互动,其中创建UI界面需要用到Masonry布局。 二、实现方法 在calcu…...
公安机关警务vr综合实战模拟训练提高团队合作能力
公安出警VR虚拟仿真培训软件是VR公司利用VR虚拟现实和web3d开发技术,对警务执法过程中可能发生的各种场景进行还原、模拟、演练,结合数据分析,实施量化考核,提高学员的心理承压、应急处突、遇袭反应和临危处置综合能力。 公安出警…...
MySQL-1(12000字详解)
一:数据库的引入 数据库在我们以后工作中是一个非常常用的知识,数据库用来存储数据,但是有些同学可能就会疑惑了,存储数据用文件就可以了,为什么还要弄个数据库呢? 文件保存数据有以下几个缺点࿱…...
voc数据集格式与yolo数据集格式的区别及相互转化
Pascal VOC数据集是目标检测领域最常用的标准数据集之一,几乎所有检测方向的论文都会给出其在VOC数据集上训练并评测的效果。VOC数据集包含的信息非常全,它不仅被拿来做目标检测,也可以拿来做分割等任务,因此除了目标检测所需的文…...
超详细!Android Termux上如何安装MySQL,内网穿透实现公网远程访问
文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身…...
TSNE降维学习
在学习使用Cora数据集时,输入的初始为[2708, 1433], 输入一共有2708个点,每个节点有1433个特征。测试集的大小为[1000, 1433]最后的输出为[1000, 7],表示每个点的类别。 我们要的就是查看这个[1000, 7]的预测结果。想要将他展示在一个平面上是…...
基于Python+Selenium的web自动化测试框架详解
简介 随着Web应用程序的广泛应用和不断发展,Web自动化测试已经成为软件质量保证中的一个重要环节。而PythonSelenium作为一组强大的工具和框架,已经成为Web自动化测试领域中的热门技术之一。PythonSelenium可以帮助我们快速、准确地模拟用户行为和操作&…...
C (1094) : DS双向链表—前驱后继
Description 在双向链表中,A有一个指针指向了后继节点B,同时,B又有一个指向前驱节点A的指针。这样不仅能从链表头节点的位置遍历整个链表所有节点,也能从链表尾节点开始遍历所有节点。 对于给定的一列数据,按照给定的…...
mp4视频太大怎么压缩变小?
mp4视频太大怎么压缩变小?确实,很多培训和教学都转向了线上模式,这使得我们需要下载或分享大量的在线教学视频。然而,由于MP4视频文件通常较大,可能会遇到无法打开或发送的问题。为了解决这个问题,我们可以…...
利用easy excel 实现文件导出
一.创建实体类 package com.siact.product.jwp.module.report.dto;import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alib…...
LongLoRA:超长上下文,大语言模型高效微调方法
麻省理工学院和香港中文大学联合发布了LongLoRA,这是一种全新的微调方法,可以增强大语言模型的上下文能力,而无需消耗大量算力资源。 通常,想增加大语言模型的上下文处理能力,需要更多的算力支持。例如,将…...
【漏洞复现】某 NVR 视频存储管理设备远程命令执行
漏洞描述 NUUO NVR是中国台湾NUUO公司旗下的一款网络视频记录器,该设备存在远程命令执行漏洞,攻击者可利用该漏洞执行任意命令,进而获取服务器的权限。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律&am…...
若依前端-应用路径发布和使用
官网的路径:前端手册 | RuoYi 应用路径 有些特殊情况需要部署到子路径下,例如:https://www.ruoyi.vip/admin,可以按照下面流程修改。 1、修改vue.config.js中的publicPath属性 publicPath: process.env.NODE_ENV "produ…...
Mojo 正式发布,Rust 能否与之匹敌?
9 月 7 日,Modular 公司宣布正式发布 Mojo:Mojo 现在已经开放本地下载——初步登陆 Linux 系统,并将很快提供 Mac 与 Windows 版本。据介绍,Mojo 最初的目标是比 Python 快 35000 倍,近日该团队表示,Mojo 将…...
opencv实现抠图,图像拼接,图像融合
在OpenCV中,你可以使用图像拼接、抠图和将图像的一部分放在另一张图片的指定位置。以下是示例代码,演示如何执行这些操作: 图像拼接 要将两张图像拼接在一起,你可以使用 cv::hconcat(水平拼接)和 cv::vco…...
照片处理软件Lightroom Classic mac中文版功能介绍(Lrc2021)
Lightroom Classic 2022 mac是一款桌面编辑工具,lrc2021 mac包括提亮颜色、使灰暗的摄影更加生动、删除瑕疵、将弯曲的画面拉直等。您可以在电脑桌面上轻松整理所有照片。使用Lightroom Classic, 轻松整理编辑照片,为您的作品锦上添花。 Ligh…...
asp.net高校留学生信息管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
一、源码特点 asp.net 高校留学生信息管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 asp.net留学生信息管理系…...
C# - Opencv应用(1) 之VS下环境配置详解
C# - Opencv应用(1) 之VS下环境配置详解 有时候,单纯c#做前端时会联合C实现的dll来落地某些功能由于有时候会用C - Opencv实现算法后封装成dll,但是有时候会感觉麻烦,不如直接通过C#直接调用Opencv在此慢慢总结下C# -…...
rsync 远程同步实现快速、安全、高效的异地备份
目录 1 rsync 远程同步 1.1 rsync是什么? 1.2 rsync同步方式 1.3 rsync的特性 1.4 rsync的应用场景 1.5 rsync与cp、scp对比 1.6 rsync同步源 2 配置rsync源服务器 2.1 建立/etc/rsyncd.conf 配置文件 3 发起端 4 发起端配置 rsyncinotify 4.1 修改rsync…...
医学访问学者面试技巧
医学访问学者面试是一个非常重要的环节,它决定了你是否能够获得这个宝贵的机会去国外的大学或研究机构学习和研究。在这篇文章中,知识人网小编将分享一些关于医学访问学者面试的技巧,帮助你在面试中表现出色。 1. 准备充分 在参加医学访问学…...
【19】c++设计模式——>桥接模式
桥接模式的定义 C的桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使得它们可以独立地变化。桥接模式的核心思想是利用组合关系代替继承关系,将系统划分成多个独立的、功能不同的类层次结…...
网络安全:六种常见的网络攻击手段
1、什么是VPN服务? 虚拟专用网络(或VPN)是您的设备与另一台计算机之间通过互联网的安全连接。VPN服务可用于在离开办公室时安全地访问工作计算机系统。但它们也常用于规避政府审查制度,或者在电影流媒体网站上阻止位置封锁&#…...
使用HbuilderX运行uniapp中小程序项目
下载HbuilderX,下载链接: HBuilderX-高效极客技巧 导入相关项目。下载微信开发者工具。使用微信开发者工具打开:注意:如果是第一次使用,需要先配置小程序ide的相关路径,才能运行成功。如下图,需…...
基于PHP的水果商城网站,mysql数据库,前台+后台,原生PHP,PHP study(小皮),完美运行,有一万字报告。
目录 演示视频 基本介绍 论文目录 购买流程 系统截图 演示视频 基本介绍 基于PHP的水果商城网站,mysql数据库,前台后台,原生PHP,PHP study(小皮),完美运行,有一万字报告。 前…...
【uniapp】自定义导航栏时,设置安全距离,适配不同机型
1、在pages.json中,给对应的页面设置自定义导航栏样式 {"path": "pages/index/index","style": {"navigationStyle": "custom","navigationBarTextStyle": "white","navigationBarTitl…...
html5网站链接标签/自媒体有哪些平台
一个不具备消息推送功能的APP不能称之为APP,消息推送是产品和运营人员常用用户运营工具。消息推送的目的在于: 通知某件事已发生。如支付成功的扣款提醒,发货提醒等等。通知平台有什么东西,促进用户进入查看或参与,提升…...
宝安西乡做网站/广告联盟怎么加入
一、安装包测试 1.1、关于反编译 目的是为了保护公司的知识产权和安全方面的考虑等,一些程序开发人员会在源码中硬编码一些敏感信息,如密码。而且若程序内部一些设计欠佳的逻辑,也可能隐含漏洞,一旦源码泄漏,安全隐患巨…...
克隆网站后怎么做/微博seo营销
java 在linux执行命令[2021-02-02 03:38:26] 简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\ \;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐:…...
广州做网站公司电话/网站互联网推广
2274: 字符串插入 Description 将字符串t插入到字符串s中,在位置pos后插入。不得使用字符串操作函数,输出组合成的字符串。 Input 输入两个字符串(t和s)和要插入的位置(pos) Output 输出组合后的字符串 Sample Input** qw…...
wordpress smartvideo/传统营销与网络营销的区别
Description: Example 1: Example 2: Example 3: Soluton 1(C): Solution 2(C): 算法分析: 解法一: 解法一是我最直接的想法,类似的方法我在之前有一道题好像也用过,找到了: LeetCode-628. Maximum Product of Three…...
怎么做熊掌号网站/网络服务有哪些
相较于去年1078万高考报名人数,今年共有1193万人报名,高考人数增加115万。 很多人高考之后要面临的问题就是选学校、选专业,下面就带大家来看一下近日百度联合中国教育在线发布《百度热搜 2022 高考大数据》,为考生选择院校、专业…...