0
点赞
收藏
分享

微信扫一扫

Android JNI 调用第三方SO

90哦吼 04-04 08:00 阅读 2

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

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

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

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

1、创建项目和创建流程

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

2、导入图片

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

3、亮度检测

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

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

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

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

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

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

举报

相关推荐

0 条评论