【表盘识别】基于hough变换实现油位计仪表盘识别附Matlab代码

简介: 【表盘识别】基于hough变换实现油位计仪表盘识别附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

目前压力仪表计量读数以人工读数为主,存在读取数值偏差问题,通过计算机自动识别压力表示数代替人工读数,可提高读数精度和工作效率,进而实现无人工操作的实时监测.为实现压力仪表的自动化精准高效读数,研究了基于Hough变换算法的计算机视觉读数,开发了相应的程序.首先采集压力表示数变化照片,通过Hough变换检测圆形表盘,采用二值化算法进行前期预处理,然后进行指针细化,将呈现长三角形的指针细化成一条直线,并通过Hough变换检测直线确定细化后的指针所在象限位置以及斜率,根据斜率判断指针偏转角度,并采用最小二乘法拟合压力值与偏转角度的关系,最终计算出指针在任意位置时的压力表示值.实验结果显示:采用该方法的判读值与压力表实际示值的误差在-0.17~+0.21 MPa之间,证明了算法的有效性.

⛄ 部分代码

clc,clear all ,close all;circleParaXYR=[];resultPoints=[];I_RGB = imread('3.png');[m,n,l] = size(I_RGB);if l>1    I = rgb2gray(I_RGB);end thresh=[0.1,0.2];  sigma=2;%定义高斯参数  BW = edge(double(I),'canny',thresh,sigma);  % 圆形检测参数 step_r = 1;step_angle = 0.1;% 最小半径minr = 100;% 最大半径maxr = 500;thresh = 0.51;tic;remove_long_distance(index1)=lines_remove_short(kk);             index1=index1+1;         end      end     resultPoints=lines_remove_long_distance; end  %表达式 xy_result1=[resultPoints(1).point1;resultPoints(1).point2]; x1_result1=xy_result1(1,1); y1_result1=xy_result1(1,2); x2_result1=xy_result1(2,1); y2_result1=xy_result1(2,2); fx1=polyfit([x1_result1,x2_result1],[y1_result1,y2_result1],1); %表达式 xy_result2=[resultPoints(2).point1;resultPoints(2).point2]; x1_result2=xy_result2(1,1); y1_result2=xy_result2(1,2); x2_result2=xy_result2(2,1); y2_result2=xy_result2(2,2); fx2=polyfit([x1_result2,x2_result2],[y1_result2,y2_result2],1); %方程组求解x_result=(fx2(2)-fx1(2))/(fx1(1)-fx2(1));y_result=fx1(1)*x_result+fx1(2); %画出最终结果 for sss=1:length(resultPoints)          xy=[resultPoints(sss).point1;resultPoints(sss).point2];     plot(xy(:,1),xy(:,2),'LineWidth',4,'Color',[1 0 0]); end%画出针尖位置re=[center_circle;x_result, y_result];plot(re(:,1),re(:,2), 'LineWidth',4,'Color',[0 1 0]);%获取最小最大刻度坐标resultXY=getMinMaxLocation(center_circle,I_RGB);%获取成对区域失败if(isempty(resultXY))    disp('获取最小最大刻度坐标失败,因为未找到成对区域!');    return;end%画出最小最大刻度re2=[center_circle;resultXY(:,1)'];plot(re2(:,1),re2(:,2), 'LineWidth',4,'Color',[0 1 0]);re3=[center_circle;resultXY(:,2)'];plot(re3(:,1),re3(:,2), 'LineWidth',4,'Color',[0 1 0]);%读数   圆心坐标,针尖坐标、最小最大刻度坐标c=[center_circle(1),center_circle(2)];jian=[x_result,y_result];%判断那个点为最小最大刻度if(resultXY(2,1)<resultXY(2,2))    shang=resultXY(:,1)';    xia=resultXY(:,2)';else    shang=resultXY(:,2)';    xia=resultXY(:,1)';end aerfa=acos((len_c_jian^2+len_c_shang^2-len_jian_shang^2)/(2*len_c_jian*len_c_shang));%弧度 aerfa=rad2deg(aerfa);%弧度转为度   len_c_xia=sqrt((c(1)-xia(1))^2+(c(2)-xia(2))^2); len_shang_xia=sqrt((shang(1)-xia(1))^2+(shang(2)-xia(2))^2);   beita=acos((len_c_shang^2+len_c_xia^2-len_shang_xia^2)/(2*len_c_shang*len_shang_xia));%弧度 beita=rad2deg(beita)/2;%弧度转为度  Vmax=10;Vmin=0; sita=(Vmax-Vmin)-((Vmax-Vmin)/((180-beita)*2))*aerfa; disp('仪表示数='); disp(sita);

⛄ 运行结果

⛄ 参考文献

[1] 蔡文超,于骞,王宏,等.基于快速Hough变换的圆形仪表的检测与读取[C]//中国人工智能学会第10届全国学术年会.0[2023-07-08].

[2] 冯养杰,林小竹.基于改进Hough变换的指针式仪表自动识别方法研究[J].北京印刷学院学报, 2015, 23(4):5.DOI:CNKI:SUN:BYXB.0.2015-04-023.

[3] 李勇.指针式表盘的自动识别技术研究及实现[D].郑州大学,2016.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料

🍅 仿真咨询

1.卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3.旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划
4.无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
5.传感器部署优化、通信协议优化、路由优化、目标定位
6.信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号
7.生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化
8.微电网优化、无功优化、配电网重构、储能配置
9.元胞自动机交通流 人群疏散 病毒扩散 晶体生长




相关文章
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
199 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
128 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于NSCT非采样轮廓波变换和CNN网络人脸识别matlab仿真
本项目展示了一种结合非采样轮廓波变换(NSCT)与卷积神经网络(CNN)的人脸识别系统。通过NSCT提取多尺度、多方向特征,并利用CNN的强大分类能力实现高效识别。项目包括ORL人脸库的训练结果对比,提供Matlab 2022a版本下的完整代码及详细中文注释,另有操作步骤视频指导。
|
4月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络的步态识别matlab仿真,数据库采用CASIA库
**核心程序**: 完整版代码附中文注释,确保清晰理解。 **理论概述**: 利用CNN从视频中学习步态时空特征。 **系统框架**: 1. 数据预处理 2. CNN特征提取 3. 构建CNN模型 4. 训练与优化 5. 识别测试 **CNN原理**: 卷积、池化、激活功能强大特征学习。 **CASIA数据库**: 高质量数据集促进模型鲁棒性。 **结论**: CNN驱动的步态识别展现高精度,潜力巨大,适用于监控和安全领域。
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
90 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
4月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于CNN卷积神经网络的MQAM调制识别matlab仿真
**理论**: 利用CNN自动识别MQAM调制信号,通过学习星座图特征区分16QAM, 64QAM等。CNN从原始数据提取高级特征,优于传统方法。 - **CNN结构**: 自动特征学习机制,适配多种MQAM类型。 - **优化**: 损失函数指导网络参数调整,提升识别准确度。 - **流程**: 大量样本训练+独立测试评估,确保模型泛化能力。 - **展望**: CNN强化无线通信信号处理,未来应用前景广阔。
|
5月前
|
算法 计算机视觉 异构计算
基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证
```markdown ## FPGA 仿真与 MATLAB 显示 - 图像处理的 FFT/IFFT FPGA 实现在 Vivado 2019.2 中仿真,结果通过 MATLAB 2022a 展示 - 核心代码片段:`Ddddddddddddddd` - 理论:FPGA 实现的一维 FFT/IFFT,加速数字信号处理,适用于高计算需求的图像应用,如压缩、滤波和识别 ```
|
4月前
|
机器学习/深度学习 算法 BI
基于深度学习网络的USB摄像头实时视频采集与手势检测识别matlab仿真
**摘要:** 本文介绍了使用MATLAB2022a实现的基于GoogLeNet的USB摄像头手势识别系统。系统通过摄像头捕获视频,利用深度学习的卷积神经网络进行手势检测与识别。GoogLeNet网络的Inception模块优化了计算效率,避免过拟合。手势检测涉及RPN生成候选框,送入网络进行分类。系统架构包括视频采集、手势检测与识别、以及决策反馈。通过GPU加速和模型优化保证实时性能,应用于智能家居等场景。
|
6月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)