精华内容
下载资源
问答
  • 该技术提高了表盘识别的自动化程度及实时性,将代替传统工业仪表的读取方式得到广泛应用。 2 目的 (1)了解机械式表盘自动读表技术的基本原理。 (2)了解仪器表盘识别技术的基本方法和相关算法。 (3)学会利用...

    一、简介

    1 应用背景
    指针式机械表盘具有安装维护方便、结构简单、防电磁干扰等诸多优点, 目前广泛应用于工矿企业、能源及计量等部门。随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求。随着计算机技术和图像处理技术的不断发展,指针式机械表自动读表技术应运而生。该技术提高了表盘识别的自动化程度及实时性,将代替传统工业仪表的读取方式得到广泛应用。
    2 目的
    (1)了解机械式表盘自动读表技术的基本原理。
    (2)了解仪器表盘识别技术的基本方法和相关算法。
    (3)学会利用MATLAB实现对图像的边缘检测、图像边缘锐化、二值化处理、Hough变换等图像处理技术。
    3 原理
    根据机械式表盘的图像特征,采用图像边缘点法线方向计数累加的圆心定位方法及过定点的直线检测算法,达到表盘识别的目标。仪表刻度检测流程如下: 摄像头采集表盘图像,送入计算机进行预处理及边缘检测操作;计算机检测出表盘回转中心及半径,并定位出表盘的有效显示区域;在此区域内,利用过定点( 回转中心)的Hough 直线变换,基于特征点对应角度的峰值搜索算法识别出指针中心线,从而输出检测结果。
    4 要求
    (1)读取一副仪表图片。读入图像,对图像进行预处理及边缘检测操作。
    (2)采用平滑滤波法对图像进行处理,滤波的同时锐化图像的边缘。
    (3)通过对读入的仪表图像进行处理,能清楚的识别表盘指针指数,且具有较准确的识别精度。

    二、源代码

    function varargout = code(varargin)
    % CODE M-file for code.fig
    %      CODE, by itself, creates a new CODE or raises the existing
    %      singleton*.
    %
    %      H = CODE returns the handle to a new CODE or the handle to
    %      the existing singleton*.
    %
    %      CODE('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in CODE.M with the given input arguments.
    %
    %      CODE('Property','Value',...) creates a new CODE or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before code_OpeningFunction gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to code_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
    
    % Edit the above text to modify the response to help code
    
    % Last Modified by GUIDE v2.5 05-Jan-2012 20:44:26
    
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @code_OpeningFcn, ...
                       'gui_OutputFcn',  @code_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
    
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT
    
    
    % --- Executes just before code is made visible.
    function code_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to code (see VARARGIN)
    
    % Choose default command line output for code
    handles.output = hObject;
    
    % Update handles structure
    guidata(hObject, handles);
    
    % UIWAIT makes code wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    backgroundImage = importdata('yalibiao.jpg');
    axes(handles.axes1);
    image(backgroundImage);
    axis off;
    
    
    % --- Outputs from this function are returned to the command line.
    function varargout = code_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Get default command line output from handles structure
    varargout{1} = handles.output;
    
    
    % --- Executes on selection change in listbox1.
    function listbox1_Callback(hObject, eventdata, handles)
    % hObject    handle to listbox1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: contents = get(hObject,'String') returns listbox1 contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from listbox1
    
    
    % --- Executes during object creation, after setting all properties.
    function listbox1_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to listbox1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: listbox controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    

    三、运行结果

    在这里插入图片描述

    四、备注

    版本:2014a

    展开全文
  • 该技术提高了表盘识别的自动化程度及实时性,将代替传统工业仪表的读取方式得到广泛应用。 2 目的 (1)了解机械式表盘自动读表技术的基本原理。 (2)了解仪器表盘识别技术的基本方法和相关算法。 (3)学会利用...

    一、简介

    1 应用背景
    指针式机械表盘具有安装维护方便、结构简单、防电磁干扰等诸多优点, 目前广泛应用于工矿企业、能源及计量等部门。随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求。随着计算机技术和图像处理技术的不断发展,指针式机械表自动读表技术应运而生。该技术提高了表盘识别的自动化程度及实时性,将代替传统工业仪表的读取方式得到广泛应用。
    2 目的
    (1)了解机械式表盘自动读表技术的基本原理。
    (2)了解仪器表盘识别技术的基本方法和相关算法。
    (3)学会利用MATLAB实现对图像的边缘检测、图像边缘锐化、二值化处理、Hough变换等图像处理技术。
    3 原理
    根据机械式表盘的图像特征,采用图像边缘点法线方向计数累加的圆心定位方法及过定点的直线检测算法,达到表盘识别的目标。仪表刻度检测流程如下: 摄像头采集表盘图像,送入计算机进行预处理及边缘检测操作;计算机检测出表盘回转中心及半径,并定位出表盘的有效显示区域;在此区域内,利用过定点( 回转中心)的Hough 直线变换,基于特征点对应角度的峰值搜索算法识别出指针中心线,从而输出检测结果。
    4 要求
    (1)读取一副仪表图片。读入图像,对图像进行预处理及边缘检测操作。
    (2)采用平滑滤波法对图像进行处理,滤波的同时锐化图像的边缘。
    (3)通过对读入的仪表图像进行处理,能清楚的识别表盘指针指数,且具有较准确的识别精度。

    二、源代码

    function varargout = code(varargin)
    % CODE M-file for code.fig
    %      CODE, by itself, creates a new CODE or raises the existing
    %      singleton*.
    %
    %      H = CODE returns the handle to a new CODE or the handle to
    %      the existing singleton*.
    %
    %      CODE('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in CODE.M with the given input arguments.
    %
    %      CODE('Property','Value',...) creates a new CODE or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before code_OpeningFunction gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to code_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
    
    % Edit the above text to modify the response to help code
    
    % Last Modified by GUIDE v2.5 05-Jan-2012 20:44:26
    
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @code_OpeningFcn, ...
                       'gui_OutputFcn',  @code_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
    
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT
    
    
    % --- Executes just before code is made visible.
    function code_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to code (see VARARGIN)
    
    % Choose default command line output for code
    handles.output = hObject;
    
    % Update handles structure
    guidata(hObject, handles);
    
    % UIWAIT makes code wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    backgroundImage = importdata('yalibiao.jpg');
    axes(handles.axes1);
    image(backgroundImage);
    axis off;
    
    
    % --- Outputs from this function are returned to the command line.
    function varargout = code_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Get default command line output from handles structure
    varargout{1} = handles.output;
    
    
    % --- Executes on selection change in listbox1.
    function listbox1_Callback(hObject, eventdata, handles)
    % hObject    handle to listbox1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: contents = get(hObject,'String') returns listbox1 contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from listbox1
    
    
    % --- Executes during object creation, after setting all properties.
    function listbox1_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to listbox1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: listbox controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    

    三、运行结果

    在这里插入图片描述

    四、备注

    版本:2014a

    展开全文
  • 图像识别通过Python3+Opencv+Numpy对圆形仪表盘的识别,包括轮廓识别、指针识别及刻度识别
  • 基于MATLAB的指针表盘识别系统

    千次阅读 2020-11-30 22:06:17
    1 应用背景指针式机械表盘具有安装维护方便、结构简单、防电磁干扰等诸多优点...该技术提高了表盘识别的自动化程度及实时性,将代替传统工业仪表的读取方式得到广泛应用。2 目的(1)了解机械式表盘自动读表技术的基...

    1 应用背景
    指针式机械表盘具有安装维护方便、结构简单、防电磁干扰等诸多优点, 目前广泛应用于工矿企业、能源及计量等部门。随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求。随着计算机技术和图像处理技术的不断发展,指针式机械表自动读表技术应运而生。该技术提高了表盘识别的自动化程度及实时性,将代替传统工业仪表的读取方式得到广泛应用。
    2 目的
    (1)了解机械式表盘自动读表技术的基本原理。
    (2)了解仪器表盘识别技术的基本方法和相关算法。
    (3)学会利用MATLAB实现对图像的边缘检测、图像边缘锐化、二值化处理、Hough变换等图像处理技术。
    3 原理
    根据机械式表盘的图像特征,采用图像边缘点法线方向计数累加的圆心定位方法及过定点的直线检测算法,达到表盘识别的目标。仪表刻度检测流程如下: 摄像头采集表盘图像,送入计算机进行预处理及边缘检测操作;计算机检测出表盘回转中心及半径,并定位出表盘的有效显示区域;在此区域内,利用过定点( 回转中心)的Hough 直线变换,基于特征点对应角度的峰值搜索算法识别出指针中心线,从而输出检测结果。
    4 要求
    (1)读取一副仪表图片。读入图像,对图像进行预处理及边缘检测操作。
    (2)采用平滑滤波法对图像进行处理,滤波的同时锐化图像的边缘。
    (3)通过对读入的仪表图像进行处理,能清楚的识别表盘指针指数,且具有较准确的识别精度。

    5 运行结果

    v2-00e4474fccd812b8aa1f61e70824c228_b.jpg

    6. 实验程序[主程序]

    RGB=imread('14.jpg');
    figure,imshow(RGB);     title('RGB')
    GRAY=rgb2gray(RGB);
    figure,imshow(GRAY);    title('GRAY')
    threshold=graythresh(GRAY);
    BW=im2bw(GRAY,threshold);
    figure,imshow(BW);      title('BW')
    BW=~BW;
    figure,imshow(BW);      title('~BW')
    BW=bwmorph(BW,'thin',Inf);
    figure,imshow(BW);      title('BWMORPH')
    [M,N]=size(BW);
    [H,T,R] = hough(BW);
    figure;
    imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit');
           xlabel('\theta'), ylabel('\rho');
           axis on, axis normal, hold on;
           P  = houghpeaks(H,1,'threshold',ceil(0.3*max(H(:))));
           x = T(P(:,2));
           y = R(P(:,1));
           plot(x,y,'s','color','white');
    %%%%%%%%%%%%%%%%%%%% Find lines and plot them%%%%%%%%%%%%%%
           lines = houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);
           hold on;
            figure, imshow(RGB), hold on
           max_len = 0;
           for k = 1:length(lines)
             xy = [lines(k).point1; lines(k).point2];
             plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
    %%%%%%%%%% plot beginnings and ends of lines%%%%%%%%%%%%%%%%%%
             plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow'); plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
    %%%% determine the endpoints of the longest line segment %%%%
             len = norm(lines(k).point1 - lines(k).point2);
             if ( len > max_len)
               max_len = len;
               xy_long = xy;
             end
           end
    %%%%%%%%%%%%% highlight the longest line segment%%%%%%%%%%%%%%
           plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');
           k=(xy(2,2)-xy(1,2))/(xy(2,1)-xy(1,1));
         theta=pi/2+atan(k);
           if((xy(1,1)+xy(2,1))/2<=N/2)
                   q=(theta+pi)*180/3.14;        
           else
               q=theta*180/3.14;            
           end
               shishu=q*6/2700-0.2;
           disp (theta);
           disp (q);
           disp (shishu);

    展开全文
  • Halcon 汽车仪表盘识别

    2018-03-14 13:35:29
    list_image_files ('D:/halcon 10_study/仪表盘_识别', 'default', [], ImageFiles) for i := 0 to |ImageFiles|-1 by 1 read_image (Image, ImageFiles) if (i=0) get_image_size (Image, Width, Height) ...
  • clear all; close all; clc; P= imread('时钟-2.jpg'); %2/5/8/11 没问题 7/10反 13图分针错 16图时针错 I = imresize(P,0.7); % 图像缩小70% % figure('NumberTitle'...end
  • 表盘识别(数字与指针)

    千次阅读 2020-08-01 17:59:00
  • 该课题为MATLAB数字仪表图像识别系统。可以识别万用表,压力表,电表,手表等的数字识别,包括小数点。带有一个GUI界面,流程为:灰度,二值化,定位,连通闭环,分割出数字区域,开闭运算,去除小面积,细化,精准...
  • 文件中从main.m文件开始执行,给了3张示例图片,均可以实现仪表盘计数的自动读取;代码中圆检测算法耗时较长,需20s。代码是本人单独实现,仅供参考!
  • 另外对于极验来说,之前还有一种方法来识别缺口,那就是对比原图和缺口图的不同之处,通过遍历像素点来找出缺口的位置,但这种方法就比较投机了。如果换家验证码服务商,不给我们原图,我们就无从比较计算了。 总之...
  • function y1=OTSU(image,th_set) clc %X=input('Enter the picture name','s'); im=imread('dianbiao2.jpg'); %a2=imread('color1.bmp'); ...end
  • Python-opencv的指针检测、表盘识别指针识别前的预处理部分去除表盘,保留指针(效果好可省略)表盘圆心检测主程序段(指针识别到输出)预处理直线检测主要问题/其他方案 指针识别前的预处理部分 主要使用大量灰度,...
  • 霍夫变换于1962年由Paul Hough 首次提出[53],后于1972年由Richard Duda和Peter Hart推广使用[54],经典霍夫变换用来检测图像中的直线,后来霍夫变换扩展到任意形状物体的识别,多为圆和椭圆。 霍夫变换运用两个坐标...
  • 指针与仪表盘自动识别

    千次阅读 2019-07-01 07:12:16
    利用传统的计算机视觉方法识别仪表盘中的指针 参考链接 yolov3原理和实现参考上篇博客 首先基于yolov3定位出仪表盘的位置,然后剪切仪表盘进行下一步的分析 yolov3检测的IOU可能不是很精准接下来利用霍夫圆检测...
  • 水表表盘的数字压缩识别的思路,主要是摄像头拍照后如何压缩,如何识别
  • 基于径向灰度算法的表盘指针识别程序,程序将操作分为了三个部分加强理解,第一部分获得识别区域,第二部分计算图像二值化,第三部分基于算法获得指针角度
  • 1 #-*- coding: utf-8 -*-2 """3 Created on Tue Sep 17 19:00:45 201945 @author: xxr6 """7 from cv2 import cv2 #因为cv2里面还有cv2 所以要这样干!8 importnumpy as np910 #读取原始图片11 image= cv2.imread('...
  • 本设计为基于MATLAB的表盘指针识别,算法原理是基于hough变换。可检测压力表,石英手表,电表刻度,气压表等带指针刻度的表盘。通过hough检测直线和圆的关系,得出指针夹角,根据刻度换算关系得出具体刻度值。算法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,955
精华内容 2,382
关键字:

表盘识别