zoukankan      html  css  js  c++  java
  • 指针式仪表自动读数与识别(八):仪表自动读数系统设计与开发

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

    系统概述

    仪表自动读数系统是指通过机器视觉等图像处理方法,对摄像头采集到的指针式仪表进行分析,自动识别仪表示数的系统。其主要目的是代替人工读数,减小工作量,提高工作效率,同时能够实施反应设备的工作状态,让其处于最佳的运行状态。故该系统应该满足以下要求:

    (1) 实时性
    能够实时读取输入图像,并分析计算仪表示数。

    (2) 准确性
    能够保证在误差允许的范围内准确的读取示数。

    (3) 鲁棒性
    够适应不同环境以及不同仪表种类的读数。

    (4) 稳定性
    系统应该保持长时间运行稳定,不会经常出现运行异常等意外而停止。

    本篇文章在前面的理论研究以及对仪表图片进行测试的基础上,实现了一个仪表自动读数系统,该系统能够对视频图像以及摄像头采集到的图像进行实时读数。系统默认使用了本文提出的RSCD圆检测算法进行表盘定位,默认使用RGS指针检测算法进行指针的定位,同时支持Hough圆检测、Hough直线检测以及CTM进行定位,并针对刻度起始点的确定问题,提供自动检测和手动标记两种模式。

    架构与流程

    一个仪表自动读数系统,应该包含输入模块、图像处理模块、读数模块、配置模块以及UI模块。其中各个模块的用途如下:

    **输入模块:**用于仪表图像的采集以及传输。本文使用无线摄像头作为输入设备,USB或者局域网作为传输媒介。

    **图像处理模块:**对输入的图像进行预处理和分析,并定位表盘以及指针。

    **读数模块:**用于计算仪表读数,误差评估。

    **UI模块:**用于用户的输入以及对结果输出展示。

    **配置模块:**用于配置仪表识别过程中的参数、过滤条件以及仪表类型等。

    仪表自动读数系统的基本架构及工作流程如下:

    html>

  • 相关阅读:
    hibernate的dialect大全
    jdbc.properties 链接各类数据库的基本配置以及URL写法
    Springboot中redis的学习练习
    博客开通了
    Java String类的hashCode()函数
    Java String类中CaseInsensitiveComparator.compare()方法的实现
    git pull远程所有分支
    Python的权限修饰符
    Tmux快捷键
    __future__模块
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286596.html
Copyright © 2011-2022 走看看