上位机图像处理和嵌入式模块部署(qmacvisual亮度检测)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们说过,在机器视觉当中,对于光源的处理要非常小心。这里面不仅包括了选择什么样的光源,还取决于怎样使用这些光源。通常情况下,静止的场景,一般都是手工调节光源之后,不再修改;但是对于运动的物体,特别是机器人,这个时候就涉及到光源的控制了。

        怎么控制光源,这里面就涉及到一个pid反馈控制。控制输出的一般是pwm波形,或者是一个串口协议,反馈的数值也是通过算法计算出来的,也就是图片的亮度值。这个亮度值可以是平均灰度,也可以是最亮的那个灰度值,甚至可以是hsv里面的hue,不管是哪一种,大家可以根据自己的需求灵活做出抉择。

        qmacvisual本身也提供了亮度检测的功能,一般用在事前标定和调整比较多。

1、创建项目和创建流程

        要使用qmacvisual,就是事先创建项目和创建流程。

2、导入图片

        因为我们还没有导入其他品牌的摄像机,所以暂时先用图片代替。后续可以使用视频流来进行验证。处理的方法,就是把【获取图像】插件拖过来,配置好图片的位置就可以了。

3、亮度检测

        【亮度检测】的控件位置,位于【检测识别】下面。直接用鼠标把控件从树形控件拖过来即可。本身没有特别需要配置的地方,主要就是输入图像。

        其中的最小亮度、最大亮度都是自己配置的。此外,在图像的左上方,有一个图像亮度值提醒,告诉我们当前亮度数值是多少。如果数值在min和max范围内,那么返回为真;反之则为假。

4、qmacvisual如何做自动亮度调节

        有的时候我们希望自己可以动态控制图片亮度,这个时候应该怎么做?或者说,这个时候应该怎么用qmacvisual来完成。通常情况下,就需要格外编写一个插件和流程了。也就是说,从流程上面看,总共有两个并发运行,一个是控制图像的亮度;一个是正常的图像信息处理。两个流程都可以同时获取camera的图像数据。对于控制图像亮度的这个流程,很多时候就可以借助于亮度检测来完成。

        比如说,首先我们需要能够从这个camera获取图片。当然这个camera也要支持多客户端访问。接着,就可以通过【亮度检测】这个插件,获取图片中的亮度信息。有了这个亮度信息之后,于是可以通过pid算法调试光源控制器,最终达到稳定控制图片亮度的目的。

        不过工业生产中,很少有这么做的,只有运动的场景才会这样控制。工业生产中,通常都是用最饱和的光源进行处理,在这种光源下面,自然光都是多余的,因为全被人工光源cover住了。这种情况下,对光源的控制也就显得有点多余了。

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

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

相关文章

WPF文本框TextEdit不以科学计数法显示

WPF文本框TextEdit不以科学计数法显示 一个float或者double类型的数值,如果小数点后0的个数≥4,在界面上就会自动以科学计数法显示, 比如:0.00003会显示成这样 但是很多时候我并不希望它这样显示,因为这样不方便编辑…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之一 简单视频放大抖动效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之一 简单视频放大抖动效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之一 简单视频放大抖动效果 一、简单介绍 二、简单视频放大抖动效果实现原理 三、简单视频放大…

C# WPF编程-命令

C# WPF编程-命令 概述WPF命令模型ICommand接口RoutedCommand类RoutedUICommand类命令库 概述 使用路由事件可以响应广泛的鼠标和键盘事件,这些事件是低级的元素。在实际应用程序中,功能被划分成一些高级的任务。这些任务可通过各种不同的动作和用户界面…

Spring Boot 学习(2)——HelloWorld

HelloWorld!全宇宙码农的第一个(行)程序(代码)。 1、创建项目 打开idea,新建一个maven项目。 1)选择项目sdk(本例是1.8) 2)输入GroupId(co…

阿里云服务器租用价格表,100元可以买哪些配置?

2024年阿里云服务器优惠价格表,一张表整理阿里云服务器最新报价,阿里云服务器网aliyunfuwuqi.com整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单,大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新…

CEF的了解

(14 封私信 / 80 条消息) CEF和Electron的区别是什么? - 知乎 (zhihu.com) Electron面向的开发者:会用JavaScript,HTML,CSS,不会C CEF面向的开发者:会用JavaScript,HTML,CSS,会C (14 封私信 / 80 条消息) liulun - …

认识什么是Git

目录 1. 认识Git 1.1. 问题引入 1.2. 概念 1.3. 作用 1.4. 如何学 1.5. Git 安装 1.6. Git配置用户信息 2. Git仓库 2.1. Git 仓库(repository) 2.2. 创建 2.3. 需求 3. Git的三个区域 3.1. Git 使用时的三个区域 3.2. 工作区的内容&#…

怎么快速上手虚拟化(容器)技术——以 Docker 为例

Docker 整体介绍 Docker 是一种使用 Go 语言开发的容器工具。所谓容器,实际上是一种虚拟化技术,用于为应用提供虚拟化的运行环境,相较于虚拟机具有轻量级、低延迟的特性。 下面是对上述介绍的说明: 应用程序运行需要一定的依赖…

HTML - 你如何使H5页面禁止手动缩放

难度级别:初级及以上 提问概率:40% 我们知道,这道题其实是在考察meta标签的viewport属性,正常情况下设置viewport的代码为 <head><meta name="viewport" content="width=device-width,initial-scale=1.0" …

【MATLAB】PSO_BP神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 1 基本定义 PSO_BP神经网络时序预测算法是一种结合了粒子群优化(PSO)算法和反向传播(BP)神经网络的时序预测方法。它利用了PSO算法的全局搜索能力和BP神经网络的优化能力&#xff0c;能够更准确地预测时序数据。 具体步…

讲讲你对数据结构-线性表了解多少?

线性表 - 数组和矩阵 当谈到线性表时&#xff0c;数组和矩阵是两种常见的数据结构。 数组&#xff08;Array&#xff09;&#xff1a; 数组是有序的元素集合&#xff0c;可以通过索引来访问和操作其中的元素。它是最简单、最基本的数据结构之一。数组的特点包括&#xff1a; …

C++ | Leetcode C++题解之第7题整数反转

题目&#xff1a; 题解&#xff1a; class Solution { public:int reverse(int x) {int rev 0;while (x ! 0) {if (rev < INT_MIN / 10 || rev > INT_MAX / 10) {return 0;}int digit x % 10;x / 10;rev rev * 10 digit;}return rev;} };

wordpress课程项目主题电脑版+手机版自适应

这款主题适合做资源、课程、素材等&#xff0c;演示站&#xff1a;点击查看

八数码问题——A*算法的应用(A-Star)

文章目录 1 问题描述2 启发式搜索3 A*算法3.1 参考网址3.2 是什么3.3 为什么A*算法适用于八数码问题3.4 A* 算法的基本框架 4 A* 算法如何解决八数码问题4.1 八数码状态的存储4.2 启发式函数4.3 构造目标状态元素位置的字典4.4 在二维列表中查找目标元素4.5 A* 算法主体4.6 路径…

RUST语言函数的定义与调用

1.定义函数 定义一个RUST函数使用fn关键字 函数定义语法: fn 函数名(参数名:参数类型,参数名:参数类型) -> 返回类型 { //函数体 } 定义一个没有参数,没有返回类型的参数 fn add() {println!("调用了add函数!"); } 定义有一个参数的函数 fn add(a:u32)…

C++ //练习 11.12 编写程序,读入string和int的序列,将每个string和int存入一个pair中,pair保存在一个vector中。

C Primer&#xff08;第5版&#xff09; 练习 11.12 练习 11.12 编写程序&#xff0c;读入string和int的序列&#xff0c;将每个string和int存入一个pair中&#xff0c;pair保存在一个vector中。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#x…

前端(动态雪景背景+动态蝴蝶)

1.CSS样式 <style>html, body, a, div, span, table, tr, td, strong, ul, ol, li, h1, h2, h3, p, input {font-weight: inherit;font-size: inherit;list-style: none;border-spacing: 0;border: 0;border-collapse: collapse;text-decoration: none;padding: 0;margi…

网站如何运用百度文心一言API进行AI内容创作?

网站如何运用百度文心一言API进行AI内容创作&#xff1f; 当我们做好一个网站的时候会因为创作内容而发愁&#xff0c;随着chatgpt的出现&#xff0c;内容创作已经不再是什么困难的事情&#xff0c;但是由于gpt是国外的&#xff0c;在国内使用有诸多不便&#xff0c;因此我们今…

06-编辑器

gedit编辑器 gedit是Ubuntu系统自带的编辑器&#xff0c;可以用来轻度编辑和记录一些内容。 在终端中我们通过以下命令打开&#xff1a; gedit 要打开或者新建的文件名虽然Ubuntu的图形界面也能通过gedit打开文件&#xff0c;但是用终端打开gedit可以动用更高的权限&#xff…

Apache Pulsar源码解析之Lookup机制

引言 在学习Pulsar一段时间后&#xff0c;相信大家也或多或少听说Lookup这个词&#xff0c;今天就一起来深入剖析下Pulsar是怎么设计的它吧 Lookup是什么 在客户端跟服务端建立TCP连接前有些信息需要提前获取&#xff0c;这个获取方式就是Lookup机制。所获取的信息有以下几种…