python 视频监控_用Python实现模拟仪表的实时视频监控

在它的核心,你的问题是计算出针的旋转角度。然后从那里,你可以计算出压强。如果幸运的话,你可以用特征检测+单应性找到针头,然后计算角度。但我怀疑这种图像会导致特征检测。在

模板匹配可以找到针,但它对旋转非常敏感,所以你必须生成大量不同针角度的模板,然后在每次需要压力读数时检查所有模板。在

使用电子压力计读取压力可能更快、更便宜、更容易。有许多方法可以将电子仪表的输出转换为Python。一些仪表可以连接到网络。有些可以作为串行端口与RS232/422或USB通信。在

如果你能找到一个带有数字显示器的仪表,那么做一些OCR/模板匹配来从相机上读取显示应该更为直接。在

编辑:

@jeremy arsenault的评论促使我想到另一个解决方案。如果你的注意力主要集中在检测指针何时越过阈值,你可以寻找表盘的前缘。你可以往表盘的中心看,那里没有指示器。在

这种图像很容易转换为黑白阈值。表盘是黑色的,背景(至少朝向中心)是白色的。在你做了一些形态学和阈值化的图像,你可以寻找黑色像素的表盘。不需要模板匹配。下面的图片说明了一些想法。第一张图片是你的图像的黑白阈值。开始的图像非常干净,但是如果你要从相机抓取,你可能需要在阈值化之前做一些模糊的形态学处理,这样就不会在你不想要的地方出现散乱的黑色像素。第二个图像有一个重叠的圆圈,您可以在其中寻找黑色像素。你可以找到前缘,后缘和平均值,得到一个相当精确的中心值。在

WYnie.png89328f72a25adf5de6faaeb8cc993d15.png

更多的实现细节/伪代码。对于计算机图像,原点通常在左上角,+y向下。另外,我定义了随着压强的增加,θ的增加。圆的参数方程是x = x0 - r*cos(theta + theta0)

y = y0 - r*sin(theta + theta0)

θ是零压力的偏移角(图中压力表为-45度左右)。强力寻找针头的方法是从零开始扫描角度并增加,直到你在x,y找到一个黑色像素。然后继续增加直到你在x,y找到一个白色像素。两个角度的平均值给你针的中心,你应该能够计算压力。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值