表盘识别基于matlab投影法电表表盘读数识别含Matlab源码 1101期

Posted 紫极神光(Q1564658423)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表盘识别基于matlab投影法电表表盘读数识别含Matlab源码 1101期相关的知识,希望对你有一定的参考价值。

一、简介

投影,在立体几何中我们学到过,是空间直线在某个方向上的投影,那么图像处理中也是这种投影思想。

最简单的投影:
水平方向投影,将图像数组进行列求和;
垂直方向投影,将图像数组进行行求和;
对于二值图像或明显特征的灰度图分割前景与背景,经常用到投影法。

二、源代码

function y1=OTSU(image,th_set)
clc
%X=input('Enter the picture name','s');
im=imread('dianbiao2.jpg');
%a2=imread('color1.bmp');
gray=rgb2gray(im);%原图像的灰度图
im1=medfilt2(gray,[3,3]);%去噪,二维中值滤波,用3*3的串口对图像中值滤波

low_high=stretchlim(im1);%增强图像,自动获取明显有双峰的灰度图的阈值
gray=imadjust(gray,low_high,[]);%增强图像对比度
%subplot(224);imshow(gray);title('after adjust');

count=imhist(im1);
[r,t]=size(im1);%数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量
n=r*t;
l=256;
count=count/n;%各级灰度出现的概率
for i=2:l
        if count(i)~=0
            st=i-1;
            break
        end
end
%以上循环语句实现寻找出现概率不为0的最小灰度值
for i=l:-1:1
        if count(i)~=0;
            nd=i-1;
            break
        end
end
%实现找出出现概率不为0的最大灰度值
f=count(st+1:nd+1);
p=st;q=nd-st;%p和分别是灰度的起始和结束值
u=0;
for i=1:q;
        u=u+f(i)*(p+i-1);
        ua(i)=u;
end
%计算图像的平均灰度值
for i=1:q;
        w(i)=sum(f(1:i));
end
%计算出选择不同k的时候,A区域的概率
d=(u*w-ua).^2./(w.*(1-w));%求出不同k值时类间方差
[y,tp]=max(d);%求出最大方差对应的灰度级
th=tp+p;

y1=zeros(r,t);
for i=1:r
        for j=1:t
            x1(i,j)=double(im1(i,j));
        end
end

三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、备注

版本:2014a

以上是关于表盘识别基于matlab投影法电表表盘读数识别含Matlab源码 1101期的主要内容,如果未能解决你的问题,请参考以下文章

表盘识别基于matlab Hough变换钟表表盘识别含Matlab源码 1069期

时钟识别基于matlab GUI Hough变换指针式时钟识别含Matlab源码 2085期

时钟识别基于matlab GUI Hough变换指针式时钟识别含Matlab源码 2085期

LabVIEW仪表盘识别

模式识别指针式表盘识别matlab源码

毕设题目:Matlab表盘识别