【钟表识别】基于计算机视觉实现钟表时间识别含Matlab源码

简介: 【钟表识别】基于计算机视觉实现钟表时间识别含Matlab源码

 1 简介

基于计算机视觉实现钟表时间识别含Matlab源码

2 部分代码

function [time_clock]= read(filepath)     I = imread(filepath);         [edges,center,maxxy,minxy] = edges_center(I);      [arrowslines,longest,center] = getarrows(I,edges,center,maxxy,minxy);      if isempty(arrowslines)       info = imfinfo(filepath);       center(1) = info.Width/2;       center(2) = info.Height/2;       maxxy = [info.Width info.Height];       minxy = [0 0];       [arrowslines,longest,center] = getarrows(I,edges,center,maxxy,minxy);   end   finallines = struct('point1',{},'point2',{});   if length(arrowslines) == 1       newlongest = arrowslines(1);       finallines(1) = arrowslines(1);       finallines(2) = arrowslines(1);   end   max_len = 0;   j=1;   if length(arrowslines) == 3       for i = 1 : length(arrowslines)           if ~isequal(arrowslines(i),longest)               finallines(j) = arrowslines(i);               len = norm(finallines(j).point1 - finallines(j).point2);               if ( len > max_len)                   max_len = len;                   newlongest = arrowslines(i);               end               j = j+1;           end       end   elseif length(arrowslines) == 2       finallines = arrowslines;       newlongest = longest;   end   if isequal(finallines(1),newlongest)       vminute = finallines(1).point2 - finallines(1).point1;       vhour = finallines(2).point2 - finallines(2).point1;   else       vhour = finallines(1).point2 - finallines(1).point1;       vminute = finallines(2).point2 - finallines(2).point1;   end   vminute = [vminute 0];   vhour = [vhour 0];   v2 = [0 1 0];   angle1 =  atan2d(norm(cross(vminute,v2)),dot(vminute,v2));   angle2 =  atan2d(norm(cross(vhour,v2)),dot(vhour,v2));      if vminute(1) > 0        angle1 = 360 - angle1;   end       if vhour(1) > 0       angle2 = 360 -angle2;   end   minute =roundn(angle1/6,0);   hour = floor(angle2/30);      if minute >= 10    time_clock = [num2str(hour) , ':', num2str(minute)];   else    time_clock = [num2str(hour) , ':0', num2str(minute)];   end

3 仿真结果

image.gif编辑

4 参考文献

[1]谢冰雪. 钟表时间显示方式的识别效率研究[J]. 科技资讯, 2013.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

5 代码下载

相关文章
|
1月前
|
算法
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
40 2
|
1月前
|
算法
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
62 1
|
30天前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
|
1月前
|
机器学习/深度学习 算法 数据可视化
基于深度学习网络的鞋子种类识别matlab仿真
使用GoogLeNet深度学习模型在matlab2022a中进行鞋子种类识别,利用Inception模块捕捉多尺度特征,提升分类精度。程序加载预训练模型`gnet.mat`,计算验证集的准确性并随机显示32个样本的预测结果及置信度。
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的螺丝螺母识别算法matlab仿真
以下是内容的摘要: 该文介绍了使用YOLOv2深度学习模型进行螺丝螺母识别的算法,展示了在matlab2022a环境下运行的6张检测效果图。YOLOv2基于Darknet-19预训练网络,结合多任务损失函数和非极大值抑制技术,有效检测目标。为了适应任务,进行了数据集准备、模型微调、锚框选取等步骤。核心程序加载预训练模型,遍历图像并展示检测结果,通过调整阈值绘制检测框。
基于混沌集成决策树的电能质量复合扰动识别(matlab代码)
基于混沌集成决策树的电能质量复合扰动识别(matlab代码)
|
1月前
|
存储 人工智能 机器人
【Matlab】Matlab 汉/英语(A/a)声学特征比较与基音频率分析(源码+音频文件)【独一无二】
【Matlab】Matlab 汉/英语(A/a)声学特征比较与基音频率分析(源码+音频文件)【独一无二】
|
1月前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
1月前
|
存储
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
1月前
|
机器学习/深度学习 算法 生物认证
基于深度学习的人员指纹身份识别算法matlab仿真
这是一个关于使用深度学习进行指纹识别的算法概述。在matlab2022a环境下,通过预处理指纹图像(灰度化、二值化等)并利用卷积神经网络(CNN)提取特征。CNN架构包含卷积、池化、归一化和全连接层。特征向量通过余弦相似度计算匹配,训练时采用triplet loss优化。部分核心代码展示了加载预训练模型进行测试集分类预测并计算准确率的过程。

热门文章

最新文章