0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

opencv如何读取仪表中的指针刻度

新机器视觉 来源:机器学习AI算法工程 作者:机器学习AI算法工 2022-04-13 14:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近遇到一个问题,如何读取仪表中的指针指向的刻度

解决方法有多种,比如,方案一:模板匹配+边缘检测+霍夫直线检测,方案二:神将网络(CNN)目标定位等,

其中CNN就有点麻烦了,需要一定数量的训练样本,太麻烦,而方案一太普通,最后我采用了方案三,

方案三:模板匹配+k-means+直线拟合

具体做法如下:

首先说一下模板匹配,它是OpenCV自带的一个算法,可以根据一个模板图到目标图上去寻找对应位置,如果模板找的比较好那么效果显著,这里说一下寻找模板的技巧,模板一定要标准、精准且特征明显。

第一次的模板选取如下:

94ea088a-ba81-11ec-aa7f-dac502259ad0.png

匹配的效果如下:

950e3eb2-ba81-11ec-aa7f-dac502259ad0.png

根据模板选取的原则我们,必须进行两次匹配才能的到精确和更高准确率的结果

第二次的模板如下:

952d293a-ba81-11ec-aa7f-dac502259ad0.png

然后在第一次结果的的基础上也就是蓝色矩形框区域进行第二次匹配,结果如下:

954926ee-ba81-11ec-aa7f-dac502259ad0.png

下面对上图进行k-means二值化,由于途中的阴影,所以只截取原图的0.6(从中心)作为k-means聚类的样本点,然后将聚类结果应用至上图并重新二值化(聚类结果为2,求中值,根据中值二值化),同时只保留内切圆部分,效果如下:

956171f4-ba81-11ec-aa7f-dac502259ad0.png

接下来就是拟合直线,拟合直线我采用旋转虚拟直线法,假设一条直线从右边0度位置顺时针绕中心旋转当它转到指针指向的位置时重合的最多,此时记录下角度,最后根据角度计算刻度值。效果图如下:

9575b01a-ba81-11ec-aa7f-dac502259ad0.png

最后就读取到了数值:

聚类结果:

[[31.99054054 23.04324324 14.89054054]

[62.69068323 53.56024845 40.05652174]]

重合数量和对应角度:(1566, 158)

对应刻度:36.005082940886126

源码如下:

958c1dd2-ba81-11ec-aa7f-dac502259ad0.png

95a4ab22-ba81-11ec-aa7f-dac502259ad0.png

95b84d1c-ba81-11ec-aa7f-dac502259ad0.png

95d43e46-ba81-11ec-aa7f-dac502259ad0.png

95ea2e40-ba81-11ec-aa7f-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4760

    浏览量

    97124
  • OpenCV
    +关注

    关注

    33

    文章

    651

    浏览量

    44395
  • cnn
    cnn
    +关注

    关注

    3

    文章

    355

    浏览量

    23244

原文标题:opencv如何读取仪表中的指针刻度

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    零成本钢铁侠手套!树莓派+OpenCV 秒变手势遥控器!

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-16 16:16 882次阅读
    零成本钢铁侠手套!树莓派+<b class='flag-5'>OpenCV</b> 秒变手势遥控器!

    如何使用树莓派与OpenCV实现面部和运动追踪的云台系统?

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-14 17:45 954次阅读
    如何使用树莓派与<b class='flag-5'>OpenCV</b>实现面部和运动追踪的云台系统?

    如何使用树莓派+OpenCV实现姿态估计和面部特征点追踪?

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-13 17:44 965次阅读
    如何使用树莓派+<b class='flag-5'>OpenCV</b>实现姿态估计和面部特征点追踪?

    如何板端编译OpenCV并搭建应用--基于瑞芯微米尔RK3576开发板

    make install进行安装 检测安装 运行自带例程 二、搭建应用首先插入USB摄像头 在终端查看是否读取到了设备 使用命令 lsusb 如果正常读取 可以看到设备中有camera关键字
    发表于 08-08 17:14

    称重控制仪表通过工业网关数据采集到MES系统

    数据,PLC通过读取称重数据从而实现自动混料、上下料等操作,提高了生产效率和产品质量。 为实现称重控制仪表数据采集到MES系统,物通博联提供基于工业智能网关的解决方案。网关具备多个串口/网口通信接口,支持MODBUS RTU和
    的头像 发表于 06-19 13:57 565次阅读

    为LSDK构建opencv时遇到的问题求解

    我正在尝试使用 flex-builder 来运行 bld -c opencv -r ubuntu:桌面 我想要最新版本的 OpenCV。在我的 sdk.yml 文件,我将 opencv
    发表于 03-26 08:26

    RTOS的本地存储指针使用

    本地存储指针是RTOS的一个重要特性,增强了任务管理和数据处理能力。在RTOS上下文中,本地存储是指存储在本地的特定任务或对象的数据。通常与任务本地存储(Task Local Storage,TLS)有关,其中数据存储在任务控制块(TCB)
    的头像 发表于 02-28 16:33 1165次阅读
    RTOS<b class='flag-5'>中</b>的本地存储<b class='flag-5'>指针</b>使用

    第二篇 RA8889 实现酷炫车载液晶仪表系列视频: UI类界面介绍

    本系列文章介绍 RA8889 实现液晶仪表HMI UI界面,分为两大部分来介绍,本期介绍如何制作UI类界面,其中包括使用PS软件制作静态类UI界面,Ae软件制作动态类的UI:指针转动的处理;瑞佑公司转图Tool对UI图片处理。下期会介绍如何通过代码实现车载
    的头像 发表于 02-25 15:27 884次阅读
    第二篇 RA8889 实现酷炫车载液晶<b class='flag-5'>仪表</b>系列视频: UI类界面介绍

    指针式万用表测量电压技巧

    主要刻度盘:一个用于测量交流电压(AC),另一个用于测量直流电压(DC)。每个刻度盘都有不同的量程,用于测量不同范围的电压。 2. 选择合适的量程 测量电压时,选择合适的量程至关重要。如果选择的量程太小,指针可能会超过
    的头像 发表于 01-23 09:32 2515次阅读

    指针式万用表与数字万用表对比

    万用表,其核心部件是一个指针刻度盘。当测量电路的电压、电流或电阻时,指针会根据测量值在刻度盘上移动到相应的位置。 优点 直观性 :
    的头像 发表于 01-23 09:31 3966次阅读

    指针式万用表读数技巧

    选择旋钮用于选择不同的测量范围,而插孔则用于连接测试线。表盘上标有刻度,用于读取测量值。 2. 选择合适的量程 在测量之前,选择合适的量程是至关重要的。如果量程选择不当,可能会导致测量结果不准确或者损坏万用表。通常,
    的头像 发表于 01-22 18:20 2710次阅读

    指针式万用表和数字万用表哪个好

    指针式万用表,也称为模拟万用表,其工作原理基于电流通过一个可移动的指针指针刻度盘上的位置表示测量值。这种万用表通常使用机械表头,指针
    的头像 发表于 01-22 17:28 7739次阅读

    指针式万用表使用指南

    ,它们通常不如数字万用表精确。 二、指针式万用表的基本构造 表头 :包含指针刻度盘,用于显示测量结果。 选择旋钮 :用于选择测量功能(电压、电流、电阻等)和量程。 表笔 :红色表笔(正极)和黑色表笔(负极),用于连
    的头像 发表于 01-22 17:25 3261次阅读

    指针式万用表测量精度比较

    指针式万用表的核心是一个可变电阻器(分压器)和一个可动的指针。当测量电压或电流时,通过分压器的电阻值会改变,从而改变通过指针的电流,使指针刻度
    的头像 发表于 01-22 17:23 2323次阅读

    指针被释放后就变成了空指针

    ;}     这段代码大家看下有没有问题,能不能顺利运行? 前面三行都没有问题,指针 s 指向了一块堆内存,把字符串 helloworld 拷贝到堆内存,然后释放了 s。 问题就出在这,很多同学不理解,指针 s 被释放了
    的头像 发表于 01-22 09:23 645次阅读