刻度拟合

刻度在仪表自动读数中并不作为计算依据(起始和终止刻度除外),最终读数仅仅依赖指针、表盘位置以及量程,因此在求仪表刻度线时可以允许少量误差,这些误差不会对最终结果造成影响。

对于刻度线的拟合,本质上还是对直线的拟合,因此常用的方法有最小二乘法和Hough变换拟合。我们通过多次轮廓筛选,然后计算轮廓外接矩形的中心,作为刻度点,刻度点与表盘圆心的连线作为刻度线。

根据刻度线的特点,轮廓筛选包括对轮廓的形状、大小以及位置和角度进行筛选,满足以下条件的轮廓将被保留,否则被剔除:
1.轮廓点个数n(或面积)在设定的范围内
通过判断轮廓点的个数(或面积),可以初步过滤掉大面积的非刻度区域。
2.轮廓点的最小外接矩形宽w、高h的比在设定的范围内
根据刻度线的特点,刻度线的宽高比M一般在1:2-1:5之间,根据宽高比可以过滤掉相同面积的非刻度轮廓。
3.轮廓的位置在表盘圆周附近
通过圆检测定位到表盘后,判断轮廓中心(x_0,y_0)与表盘圆O(a,b,r)圆心的距离d,可以过滤掉面积以及宽高比相近的轮廓。
4.轮廓最小外接矩形的方向指向圆心
根据刻度线的特点,刻度线总是指向表盘圆心,因此,根据其最小外接矩形的倾斜角度α,判断是否是指向表盘圆心,达到最终的过滤目的。

以下是过滤后的结果:

指针式仪表自动读数与识别(五):刻度线定位与拟合相关推荐

  1. 指针式仪表自动读数与识别(一)

    前言的前言 因原个人博客废弃,不再维护,防止文章丢失,遂迁移至此. 鉴于大家对源码的需求较多,遂将源码上传.源码地址见文末. 前言 本系列文章是关于"指针式仪表的自动读数与识别", ...

  2. 指针式仪表自动读数与识别(八):仪表自动读数系统设计与开发

    序 前面几篇文章都是偏理论的,这篇文章则是偏实践的,本文使用C#+EmguCV开发一个仪表自动读数系统,目前该系统能够识别圆形的温度表.气压表以及方形的电流.电压表,误差控制在0.1%左右. 系统概述 ...

  3. 指针式仪表自动读数与识别(四):非圆形表盘定位

    基于RSCD的非圆形表盘定位 非圆形表盘外观一般为方形,常见于电流表和电压表.这些仪表没有明显的圆形表盘,因此无法通过直接Hough圆检测来定位表盘圆.观察仪表特点,可以发现虽然表盘不是圆形,但是表盘 ...

  4. 指针式仪表自动读数与识别(二):仪表图像预处理

    一.仪表图像预处理 1.预处理操作 在做任何图像处理相关操作之前都要先进行预处理.预处理操作包括: (1) 缩放和变换 缩放操作的主要目的是减小图像大小,减少计算量,缩放操作不是必须的,但是如果系统对 ...

  5. 指针式仪表自动读数与识别(九):多仪表自动读数

    前面的几篇文章是针对单个仪表的读数,本片文章是针对于多个仪表的读数.考虑到由于有些仪表并不止一个表盘,所以在摄像头采集到的图像中,一张图像会 包含多个表盘,若是用多个摄像头去拍摄则得不偿失,所以我们使 ...

  6. 指针式仪表自动读数与识别(三):圆形表盘定位

    Hough圆检测及其常用优化 针对圆形仪表来说,表盘定位常用的方法是Hough圆检测. Hough圆检测原理如下: 引用自百度百科: 通过在参数空间里进行简单的累加统计,然后在Hough参数空间寻找累 ...

  7. 指针式仪表的自动读数与识别

    指针式仪表的自动读数与识别 前言 概述 步骤概括 1.仪表图像预处理 2.刻度线提取 2.1轮廓查找 2.2面积筛选,长宽比,距离 2.3刻度线轮廓拟合直线 3.指针轮廓提取 3.1 霍夫直线检测原理 ...

  8. MATLAB指针式仪表自动读数系统设计

    一.课题介绍 随着模式识别技术.计算机技术等多种技术的不断完善和发展,机器视觉获得了巨大的进步与发展.目前在许多企业中,存在着大量的仪表,仪表的读数都要靠人来完成,工作量很大而且误差率相对来说比较高, ...

  9. 智慧交通day03-车道线检测实现06:车道线定位及拟合+代码实现

    学习目标 了解直方图确定车道线位置的思想 我们根据前面检测出的车道线信息,利用直方图和滑动窗口的方法,精确定位车道线,并进行拟合. 1. 定位思想 下图是我们检测到的车道线结果: 沿x轴方向统计每一列 ...

最新文章

  1. 1.3-date命令
  2. 集成有MAX1169,MAX520的DAAC单片STC8G1K08机电路板
  3. service数据保存_「数据架构」数据流程图与实例-客户服务系统
  4. BlogEngine(4)---Widget小部件
  5. LeetCode刷题: 整数反转
  6. java jbutton文字_java JButton 改变按钮文字
  7. 随机数的扩展--等概率随机函数的实现
  8. ActiveMQ 发送和接收消息
  9. 蓝昭餐饮管理系统服务器无法连接,服务器安全加固操作指南.docx
  10. Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的适用版本
  11. MFC初探 —— 捕获键盘消息
  12. cv::Mat ptr 和 at 注意事项
  13. Bailian4128 单词序列【BFS】
  14. 007---多态与多态性
  15. Python让繁琐工作自动化——chapter13 处理PDF和Word文档
  16. mac苹果电脑有什么免费的系统清理软件?
  17. 怎样用c语言制作文件保险箱,开题(电子保险箱)技巧.doc
  18. Encoder-Decoder模型
  19. 手机IMEI串码获取
  20. java丐帮_JAVA集合 list set map

热门文章

  1. HTML5 Canvas制作雷达图实战
  2. 超简单的Python代码爬取王者荣耀全英雄皮肤—建议直接复制粘贴
  3. Python实现秒解数独
  4. c语言单链表就地逆置编程,C++ 单链表的 就地逆置 ,以及基本操作
  5. veristand c语言编程,NI VeriStand应用
  6. python入门文件读取与写入_使用Python对Dicom文件进行读取与写入的实现
  7. exe/dll 文件依赖查询工具
  8. 《数据结构》天勤和王道 第四章 串
  9. linux 命令行 time,Linux 命令行日常交互篇
  10. Unity使用VS编辑器打开项目失败解决办法