[YOLOv8] 用YOLOv8实现指针式圆形仪表智能读数(三)

devtools/2024/9/23 7:27:15/

        最近研究了一个项目,利用python代码实现指针式圆形仪表的自动读数,并将读数结果进行输出,若需要完整数据集和源代码可以私信。

目录

🍓🍓1.yolov8实现圆盘形仪表智能读数 

🙋🙋2.表盘智能读数

🍋2.1圆形表盘转成矩形

        可以看到,将矩形展开指针和点位,就可以明显看到指针所在的表盘刻度位置信息了,因此后续我们就可以通过在该图上计算指针占表盘的占比就可以知道读数。

🍋2.2根据展开矩形图计算表盘和指针中心线

🍋2.3根据占比计算读数

整理不易,欢迎一键三连!!!

送你们一条美丽的--分割线--


🍓🍓1.yolov8实现圆盘形仪表智能读数 

        实现的效果如下:

        对整个项目来说,可分为三个大步骤:

  1. 仪表目标检测
  2. 仪表表盘指针分割
  3. 计算读数

        此篇先将仪表目标检测,将原图中的表盘识别出来。

🙋🙋2.表盘智能读数

        表盘位置识别出来,并且知道了指针位置之后,就可以进行仪表智能读数了。本文中采用将圆形表盘通过球坐标转直角坐标的方式进行圆形转矩形,然后通过矩形来技术指针在表盘中的具体位置,最后通过所占比例进行读数估计。

🍋2.1圆形表盘转成矩形

首先,我们预测出来的表盘和指针位置图片,如下图所示。

        然后将其转成矩形进行展示如下:

        可以看到,将矩形展开指针和点位,就可以明显看到指针所在的表盘刻度位置信息了,因此后续我们就可以通过在该图上计算指针占表盘的占比就可以知道读数。

        当然也可以不展开成矩形,直接根据点位的[<x1,y1>,<x2,y2>,...,]坐标和指针顶端的位置<x,y>,进行一个角度的位置判断。

🍋2.2根据展开矩形图计算表盘和指针中心线

        计算每根刻度线的中心点的横坐标,因为横坐标代表了其位置,每根线的纵坐标是几乎相同的。同样的方法,计算指针的中心点的横坐标。

        根据此展开图,获取指针分割图普通坐标轴中x轴方向的位置:

python">zhizhen: 125


        同样的得到刻度线所处的位置:

python">point_line:[62, 69, 74, 80, 85, 90, 96, 101, 106, 112, 117, 122, 127, 133, 138, 143, 148, 153, 159, 164, 169, 174, 179, 184, 189, 194, 199, 205, 210, 215, 220, 225, 230, 235, 240, 246, 251, 256, 261, 266, 271, 276, 281, 287, 292, 297, 302, 307, 312, 317]

        然后就可以计算指针位置在哪两个刻度之间,并且占百分比是多少,就可以轻松计算出指针所在位置占总表盘的百分比了。

python代码计算打印信息如下:

biao con: 50
[62, 69, 74, 80, 85, 90, 96, 101, 106, 112, 117, 122, 127, 133, 138, 143, 148, 153, 159, 164, 169, 174, 179, 184, 189, 194, 199, 205, 210, 215, 220, 225, 230, 235, 240, 246, 251, 256, 261, 266, 271, 276, 281, 287, 292, 297, 302, 307, 312, 317]
gramma: 5
zhen con: 1
scale_locations: [[62, 69, 74, 80, 85, 90, 96, 101, 106, 112, 117, 122, 127, 133, 138, 143, 148, 153, 159, 164, 169, 174, 179, 184, 189, 194, 199, 205, 210, 215, 220, 225, 230, 235, 240, 246, 251, 256, 261, 266, 271, 276, 281, 287, 292, 297, 302, 307, 312, 317]]
pointer_locations [[125]]
12.6
zhizhenweizhi: 12.6
12.6
dushu: [6.3]

🍋2.3根据占比计算读数

        这里要注意,要通过占比计算读数首先要知道表的量程,或者是统一规格的表,哪怕刻度线不一致,只要刻度线个数和表的量程能一一对应也可以,此处假设表的量程为50。

        从上一步计算得到指针的占比,再简单乘法计算就可以知道读数了

读数 = 量程 * 占比

        比如下图的读数为6.3

dushu: [6.3]

        至此就大功告成了,一个完整的圆形仪表智能读数项目就到此结束了,当然还有很多小瑕疵,但是基本的功能是可以实现了的,在这里小小记录一下,以免以后自己忘掉了。

 传送门:

[YOLOv8] 用YOLOv8实现指针式圆形仪表智能读数(一)

[YOLOv8] 用YOLOv8实现指针式圆形仪表智能读数(二)

整理不易,欢迎一键三连!!!

送你们一条美丽的--分割线--

🌷🌷🍀🍀🌾🌾🍓🍓🍂🍂🙋🙋🐸🐸🙋🙋💖💖🍌🍌🔔🔔🍉🍉🍭🍭🍋🍋🍇🍇🏆🏆📸📸⛵⛵⭐⭐🍎🍎👍👍🌷🌷


http://www.ppmy.cn/devtools/39655.html

相关文章

WPS二次开发系列:如何使用WPS返回的FileUri

作者持续关注 WPS二次开发专题系列&#xff0c;持续为大家带来更多有价值的WPS开发技术细节&#xff0c;如果能够帮助到您&#xff0c;请帮忙来个一键三连&#xff0c;更多问题请联系我&#xff08;QQ:250325397&#xff09; 目录 什么是FileUri 在SDK中的使用场景 打开文档时…

使用python将多张图片转为一个PDF

使用python将多张图片转为一个PDF 更新时间&#xff1a;20240418&#xff0c;亲测有用 用法1&#xff1a;传入的是图片路径列表 from PIL import Image import os# TODO 用法1&#xff0c;传入的是图片路径列表 def convert_images_to_pdf(image_paths, output_path):images…

GitHub Actions中授权AWS服务

GitHub Actions 是 GitHub 提供的一项持续集成/持续部署服务,可帮助您自动化软件开发工作流程。结合 AWS 服务,您可以在 GitHub Actions 工作流程中访问和管理 AWS 资源,从而实现更高效的开发和部署流程。 [参考](https://docs.github.com/zh/actions/deployment/security-…

简单版开心消消乐(python实现)

文章目录 一、pycharm 安装1.1 pycharm 下载1.2 pycharm 安装 二、创建 python 项目2.1 创建项目2.2 配置项目环境2.3 编写项目代码 三、撰写代码3.1 读取文件3.2 响应鼠标事件3.2.1 示例 13.2.2 示例 2 3.3 封装成类3.3.1 封装成类3.3.2 继续封装 3.4 消除逻辑 四、完整代码4.…

华火电焰灶,科技打造“新”厨房

家里最大的空气污染源其实来自厨房里的燃气灶&#xff01;——斯坦福大学发表的《科学进展》期刊 厨房在家庭中占有举足轻重的地位&#xff0c;它不仅是一个烹饪美食的场所&#xff0c;更是家人情感交流的重要空间。厨房大致经历了两次变革&#xff0c;分别是以柴火灶为主体的厨…

新零售商业模式怎么设计,社交新零售起盘策划公司

新零售企业起盘、新零售落地方案、新零售招商模式 坐标&#xff1a;厦门&#xff0c;我是易创客肖琳 深耕社交新零售行业10年&#xff0c;主要提供新零售系统工具及顶层商业模式设计、全案策划运营陪跑等。 掌握这9大体系&#xff0c;品牌方能多干两个亿&#xff01;特别是体系…

微信小程序绕开wx.uploadFile,上传图片,(直接把图片上传到服务器)

用wx.request是可以上传文件的&#xff0c;区别在于需要通过路径读取文件&#xff0c;上传文件&#xff0c; 而wx.uploadFile的方法只需要用路径&#xff0c;无需读取文件 wx.chooseMedia({count: 1,mediaType: [image], // 只允许选择图片sourceType: [album, camera], // 可…

蓝桥杯备战9.拼数

P1012 [NOIP1998 提高组] 拼数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题作对了&#xff0c;但是题解看到更好的 我写的史 #include<bits/stdc.h> #define endl \n #define int long long using namespace std; const int N 2e710,M 1e310; int a[N],h[…