首页 > 其他分享 >上位机图像处理和嵌入式模块部署(qmacvisual亮度检测)

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

时间:2024-04-03 16:32:16浏览次数:27  
标签:光源 检测 亮度 嵌入式 图像处理 qmacvisual 图像 图片

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

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

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

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

1、创建项目和创建流程

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

2、导入图片

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

3、亮度检测

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

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

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

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

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

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

标签:光源,检测,亮度,嵌入式,图像处理,qmacvisual,图像,图片
From: https://blog.csdn.net/feixiaoxing/article/details/137348521

相关文章

  • 嵌入式算法开发系列之卡尔曼滤波算法
    卡尔曼滤波算法文章目录卡尔曼滤波算法前言一、卡尔曼滤波算法原理二、算法应用三、C语言实现总结前言在嵌入式系统中,传感器数据通常受到噪声、误差和不确定性的影响,因此需要一种有效的方法来估计系统的状态。卡尔曼滤波算法是一种基于概率理论的优雅而高效的状态......
  • 嵌入式算法开发系列之离散傅里叶变换算法
    嵌入式算法开发系列之离散傅里叶变换算法文章目录嵌入式算法开发系列之离散傅里叶变换算法前言一、离散傅里叶变换原理二、算法应用三、C语言实现示例总结前言在嵌入式系统中,离散傅里叶变换(DiscreteFourierTransform,DFT)是一种常见且重要的信号处理技术,用于将时......
  • 【STM32嵌入式系统设计与开发】——16InputCapture(输入捕获应用)
    这里写目录标题STM32资料包:百度网盘下载链接:链接:https://pan.baidu.com/s/1mWx9Asaipk-2z9HY17wYXQ?pwd=8888提取码:8888一、任务描述二、任务实施1、工程文件夹创建2、函数编辑(1)主函数编辑(2)USART1初始化函数(usart1_init())(3)USART数据发送函数(USART1_Send_Data())(4)USART......
  • 嵌入式案例
                      ......
  • 几种嵌入式中常见的滤波算法
    在嵌入式系统开发中,滤波算法是不可或缺的一部分,用于从带有噪声的数据中提取有用信息,提高数据质量,并减少错误决策的可能性。下面将介绍几种在嵌入式系统中常见的滤波算法。1.移动平均滤波(MovingAverageFilter)移动平均滤波是一种简单的滤波算法,通过计算一定窗口内数据点的平......
  • 嵌入式工程师常用的几种算法
    嵌入式工程师常用的几种算法嵌入式系统在现代电子设备中无处不在,从简单的家电到复杂的工业控制系统,都离不开嵌入式技术的支持。作为嵌入式工程师,掌握一些常用的算法对于提高系统性能和优化资源利用至关重要。本文将介绍几种嵌入式工程师常用的算法。1.排序算法排序算法在嵌......
  • 【嵌入式智能产品开发实战】(十四)—— 政安晨:通过ARM-Linux掌握基本技能【链接静态库与
    目录链接静态库动态链接与地址无关的代码全局偏移表延迟绑定共享库政安晨的个人主页:政安晨欢迎 ......
  • Linux基础学习详细版(嵌入式开发必学)
    一、Linux简介什么是Linux?Linux就是跟平时大家接触的Windows操作系统软件一样,Linux也是一个操作系统软件,Linux跟Windows不同之处在于,Linux是一套开放源代码程序的、可以自由传播的类Unix操作系统软件。什么是开源?开源就是开放源代码,指的是将Linux系统的源代码公开,允许任......
  • 嵌入式学习Day4
    一、输入一个数判断是否回数代码:运行结果:二、输入一个数判断是否完美数代码:运行结果:三、图形打印打印以下两个图形  *       **** **       *** ***        ******         *代码:运行结果......
  • 嵌入式学习Day5
    一、请简述什么大端存储和小端存储?大端存储:低位存储数据的高位,高位存储数据的低位小端存储,低位存储数据的低位,高位存储数据的高位二、请简述gcc的分步编译?1.预处理:展开头文件,替换宏,删除注释:gcc-Efile.c-ofile.i2.编译:检查语法的正确性,生成汇编文件:gcc-S file.i -o......