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;
}

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

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

相关文章

如何在手机上设置节日提醒和倒计时天数?

在平淡的生活和工作中&#xff0c;时不时有各种各样节日的点缀&#xff0c;为我们的日常增添了一些仪式感&#xff0c;例如春节、元宵节、情人节、端午节、七夕节等。此外还有一些特殊的日子也值得纪念&#xff0c;例如恋爱纪念日、结婚纪念日、亲朋好友生日等。面对这些节日&a…

【数据结构】算法的空间复杂度

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 算法空间复杂度的定义 算法的时间复杂度和空间复杂度是度量算法好坏的两个重要量度,在实际写代码的过程中,我们完全可以用空间来换时间,比如说,我们要判断某某年是不是闰年,大…

css实现一行N个元素动态布局(以4个为例)

昨日同事问了我一个前端问题&#xff0c;前端开发的尺寸都不按照UI图上面还原的吗&#xff1f; 我了解了其中原由&#xff0c;告知UI图并不会考虑到所有的场景&#xff0c;只能给个案例&#xff0c;画图是死的&#xff0c;代码写出来的得是活的。就像他遇到的案例&#xff0c;请…

GTX312L比TSM12更具优势的智能门锁触摸芯片方案

韩国GreenChip&#xff08;绿芯&#xff09;GTX312L是一款高灵敏、超强抗干扰能力具有自动灵敏度校准的12通道电容传感器&#xff0c;电源电压范围为1.8V&#xff5e;5.0V&#xff0c;支持单键/多点触控&#xff1b;采用I2C通信协议&#xff1b;内部控制寄存器可以使用I2C读写接…

华为云云耀云服务器L实例评测使用 | 云耀云服务器L实例Docker可视化Portainer容器管理

一、使用背景 之前一直在用阿里云或者腾讯云的服务器&#xff0c;现在接触了一下华为云的服务器实例&#xff0c;点开产品列表发现有弹性云服务器ECS、云耀云服务器HECS等&#xff0c;本文主要使用云耀云服务器&#xff0c;看到官方简介&#xff1a; 华为云耀云服务器&#x…

uniapp小程序中给web-view页面添加授权弹窗(使用cover-view组件覆盖实现该功能)

效果图&#xff1a; web-view是承载网页的容器。会自动铺满整个小程序页面&#xff0c;个人类型的小程序暂不支持使用。 再看下面一个提示&#xff1a; 每个页面只能有一个 web-view&#xff0c;web-view 会自动铺满整个页面&#xff0c;并覆盖其他组件。 也就是说&#xff0c;…

Android Studio版本升级后的问题 gradle降级、jdk升级

Cannot use TaskAction annotation on method IncrementalTask.taskAction$gradle_core() because interface org.gradle.api.tasks.incremental.IncrementalTaskInputs is not a valid parameter to an action method. 修改下面两处地方分别为7.0.3、7.3.3Android Gradle plu…

前端-Vue-开发指南

VueJS 开源文档 拉入vscode安装node.js安装vue脚手架components : 组件router&#xff1a;路由创建新组建 &#xff1a;assets&#xff1a; 系统图片存放地址main.js&#xff1a; vue脚手架对象存放地 &#xff08;新的包要放在里面&#xff09;属性 computedslot 插槽error St…

Hadoop-2.5.2平台环境搭建遇到的问题

文章目录 一、集群环境二、MySQL2.1 MySQL初始化失败2.2 MySQL启动报错2.3 启动时报不能打开日志错2.4 mysql启动时pid报错 二、Hive2.1 Hive修改core-site.xml文件后刷新权限2.2 Hive启动元数据时报错2.3 Hive初始化MySQL报错2.3.1 报错信息2.3.2 错误原因2.3.3 参考文档 2.4 …

React的类式组件和函数式组件之间有什么区别?

React 中的类组件和函数组件是两种不同的组件编写方式&#xff0c;它们之间有一些区别。 语法和写法&#xff1a;类组件是使用类的语法进行定义的&#xff0c;它继承自 React.Component 类&#xff0c;并且需要实现 render() 方法来返回组件的 JSX。函数组件是使用函数的语法进…

【SCSS篇】Vite+Vue3项目全局引入scss文件

文章目录 前言一、安装与使用1.1 安装1.2 scss 全局文件编写1.2.1 概述 1.3 全局引入和配置1.4 组件内使用 vue2 项目引入 sass附&#xff1a;忽略ts类型检测 前言 Sass 是世界上最成熟、最稳定、最强大的专业级CSS扩展语言&#xff01;在日常项目开发过程中使用非常广泛&…

数据库:Hive转Presto(五)

此篇将所有代码都补充完了&#xff0c;之前发现有的代码写错了&#xff0c;以这篇为准&#xff0c;以下为完整代码&#xff0c;如果发现我有什么考虑不周的地方&#xff0c;可以评论提建议&#xff0c;感谢。代码是想哪写哪&#xff0c;可能比较繁琐&#xff0c;还需要优化。 …

Maven - 5 分钟快速通关

目录 一、Maven 1.1、 基础语法 1.2、聚合 1.3、继承 1.4、自定义属性 一、Maven 1.1、 基础语法 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/…

MVVM 与 MVC区别和应用场景?

MVVM 和 MVC 1. MVC2. MVVM 1. MVC MVC 是 Model View Controller 的缩写 Model&#xff1a;模型层&#xff0c;是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。View&#xff1a;视图层&#xff0c;用户界面渲染逻辑&#xff0c;通常视图…

C#(Csharp)我的基础教程(三)(我的菜鸟教程笔记)-控件对象与窗体容器集合(Control)的探究与学习

目录 1、窗体类&#xff08;主代码文件窗体设计器后台代码文件&#xff09;2、控件对象与窗体容器集合&#xff08;Control&#xff09; 1、窗体类&#xff08;主代码文件窗体设计器后台代码文件&#xff09; 主窗体对象的创建&#xff1a;在Program类里面&#xff1a; Appli…

Spring Boot中的JdbcTemplate是什么,如何使用

Spring Boot中的JdbcTemplate是什么&#xff0c;如何使用 Spring Boot是一个流行的Java应用程序开发框架&#xff0c;它简化了Java应用程序的开发过程&#xff0c;并提供了丰富的功能和工具。在Spring Boot中&#xff0c;JdbcTemplate是一个强大的数据库访问工具&#xff0c;它…

【Python】PaddleOCR文字识别国产之光 从安装到pycharm中测试 (保姆级图文)

目录 官方项目地址Python环境搭建&#xff08;也就是使用Anaconda的python&#xff09;1. 安装Anaconda1. 打开终端并创建conda环境 安装PaddlePaddle&#xff08;CPU演示&#xff09;安装PaddleOCR whl包如果安装shapely库报错&#xff08;我没有报错&#xff0c;其他类似库安…

01 初识FPGA

01 初识FPGA 一.FPGA是什么 FPGA&#xff08;Filed Programmable Gate Array&#xff09;&#xff0c;现场可编程门阵列&#xff0c;一种以数字电路为主的集成芯片&#xff0c;属于可编程逻辑器件PLD的一种。 1.1 两大巨头 Xilinx(赛灵思)Altera&#xff08;阿尔特拉&#…

VPN基础

1.VPN简介 VPN即虚拟专用网&#xff0c;泛指通过VPN技术在公用网络上构建的虚拟专用网络。VPN用户在此虚拟网络中传输私网流量&#xff0c;在不改变网络现状的情况下实现安全、可靠的连接。 专用&#xff1a;VPN网络是专门供VPN用户使用的网络&#xff0c;对于VPN用户&#xf…

geecg-uniapp 同源策略 数据请求 获取后台数据 进行页面渲染 ui库安装 冲突解决(3)

一&#xff0c;同源策略 &#xff08;1&#xff09;首先找到env 要是没有env 需要创建一个替换成后端接口 &#xff08;2&#xff09;因为他封装了 先找到 http 请求位置一级一级找 然后进行接口修改 &#xff08;3&#xff09;appUpdata 修改接口 运行即可 &#x…