基于Android系统的色环电阻识别.docx
- 文档编号:24355239
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:19
- 大小:231.10KB
基于Android系统的色环电阻识别.docx
《基于Android系统的色环电阻识别.docx》由会员分享,可在线阅读,更多相关《基于Android系统的色环电阻识别.docx(19页珍藏版)》请在冰豆网上搜索。
基于Android系统的色环电阻识别
基于Android系统的色环电阻识别
摘要:
在现在实验室中,普遍通过人工观察色环颜色来判断阻值,从而选取相应的电阻,但由于色环电阻本身体积较小,颜色复杂,通过人工识别色环读出阻值效率较低,并且对于色盲群体来说,通过识别颜色来读出阻值显得更为困难,所以有必要使用简单的工具,快速的实现对色环电阻阻值的识别。
本次设计的Androidapp便可以通过简单的拍摄功能,实现对色环电阻阻值的判断,从而大大减轻了识别并选取电阻的负担,同时以其高效实用性的特点,也方便学生和工程师的使用。
使用Eclipse作为开发平台,对色环电阻色彩识别的实现,通过调用摄像头对电阻进行拍照,获取照片后对照片进行分析。
本次设计了两款识别程序,一个是匹配于常见的E-96系列阻值表阻值的程序,另一个是可以识别所有阻值的程序。
首先在SurfaceView界面添加轮廓,使电阻在轮廓线内,从而分析轮廓线内的色彩,再通过计算选取相应的关键点,分析关键点上的色彩。
分析色彩时,在RGB色彩空间中分析最接近的值作为相应的色彩值,并分析常见的E-96系列电阻阻值表中的值作为修正值。
本程序在光照条件良好的情况下,识别率可以在80%左右。
关键词:
色环电阻;电阻识别;Eclipse;Android;RGB色彩空间
ColorringresistancerecognitionbasedonAndroidsystem
Abstract:
Inthepresentlaboratory,itiscommonlyusedtojudgetheresistancebyartificialcolorringcolor,andselectthecorrespondingresistance,butbecausethecolorringresistanceitselfissmallandthecoloriscomplex,theefficiencyofreadingresistanceislowbyartificialcolorring,anditismoreimportantforcolorblindgrouptoreadtheresistancebyidentifyingthecolor.Therefore,itisnecessarytouseasimpletooltoquicklyidentifytheresistancevalueofcolorring.ThedesignofAndroidappcanrealizetheresistancevalueofthecolorringthroughthesimpleshootingfunction,thusgreatlyalleviatestheburdenofidentifyingandselectingresistance.Atthesametime,withitshighefficiencyandpracticality,italsofacilitatestheuseofstudentsandengineers.UsingEclipseasthedevelopmentplatform,thecolorringresistancecolorrecognitionisrealized,theresistanceisphotographedbycallingthecamera,andthephotosareanalyzedafterobtainingthephotos.Thisdesignhastworecognitionprocedures,oneisaprogramthatmatchesthecommonresistanceseriesofE-96series,andtheotherisaprogramthatcanidentifyallresistancevalues.First,thecontourisaddedtotheSurfaceViewinterfacetomaketheresistanceinthecontourline,andthenthecolorinthecontourlineisanalyzed.Thenthekeypointsareselectedbycalculationandthecoloronthekeypointsisanalyzed.Whenthecolorisanalyzed,thenearestvalueisanalyzedintheRGBcolorspaceasthecorrespondingcolorvalue,andthevalueinthecommonE-96seriesresistanceresistancemeterisanalyzedasthecorrectionvalue.Undertheconditionofgoodillumination,therecognitionratecanbearound80%.
Keywords:
colorringresistance;resistanceidentification;Eclipse;Android;DefaultRGBColourSpace
1序言
1.1课题研究背景
在电子电路中,色环电阻是使用频率较高的一种电子控件,它可以通过不同颜色的环来代表电阻的阻值和误差。
色环电阻的优点在于使用简单,方便选取,可根据使用者的需求,按照顺序读色环上的颜色组合来判断电阻的阻值和误差范围,以此来选取需要的电阻,所以色环电阻广泛应用于各种电子设备和各行各业。
在实验或者维修工作中,需要快速的识别色环电阻的色环,并准确的读出阻值,从而选取相应的电阻。
但由于色环电阻本身体积较小,颜色复杂,通过人工识别色环读出阻值效率较低,并且对于色盲群体来说,通过识别颜色来读出阻值便显得更为困难,所以有必要使用简单的工具,快速的实现对色环电阻阻值的识别。
这里希望能够便携简单的识别电阻,所以选择了Android系统,在手机上设计程序来实现相关功能。
本文主要内容为如何在Android系统上设计程序,本次设计了两款识别程序,一个是匹配于常见的E-96系列阻值表阻值的程序,另一个是可以识别所有阻值的程序。
首先在SurfaceView界面添加轮廓,使电阻在轮廓线内,从而分析轮廓线内的色彩,再通过计算选取相应的关键点,分析关键点上的色彩。
分析色彩时,在RGB色彩空间中分析最接近的值作为相应的色彩值,并分析常见的E-96系列电阻阻值表中的值作为修正值。
本程序在光照条件良好的情况下,进行了十组测试,测试结果有八组效果较好,识别率可以在80%左右[1]。
1.2可行性分析
1.2.1技术可行性
前期通过相关资料的查阅,懂得了一定的Android开发和图像识别的知识,同时自己通过学习Java语言编程和Androidxml的设计,已经初步具备开发一款app的能力,因此可以保证在规定的时间内完成所需设计。
对于本次开发app所需的相关算法和功能的实现,可以参考相关书籍和有关功能实现的程序。
本次的设计主要用Java编程,在Eclipse上安装Android工具,并配置相关环境来实现app的开发。
色环电阻的识别具有如下一些优势和简便性:
1)颜色数固定,只有十二种既定颜色,所以不需要众多的颜色集合,模式识别的目标集合不大,2)色环电阻的电阻组合通常不超过96种组合,实验室常见的为24种。
所用的电阻组合可以对比常见的E-96和E-96系列电阻阻值表,并对识别出的阻值进行相应的匹配[2]。
1.2.2经济可行性
在通讯工具普遍使用的当代社会,手机作为功能的实现设备,这将大大降低了生产和使用的成本,方便使用者使用。
在设计过程中所需要的相关知识和资料,大部分可以通过学校的图书馆借阅,因此不需要太多的资金成本[3]。
1.3色环电阻检测的可行性方法对比
方法一:
将界面设置为如图1-3所示,因为常用的色环电阻有十二种颜色,所以只需要按照十二种不同的颜色所代表的数值进行相关的设置,就可以将色环电阻的颜色输入进去,进行计算。
这种方法是常见的一种方法,不过这样比较麻烦,而且同样需要自己对色环的颜色进行相关的识别[4]。
图1-3人工输入色环色环电阻颜色计算图
方法二:
可以使用机器视觉的办法来进行相关色环电阻的判断,就是通过机器的视觉系统,对电阻的图像进行相关的拍摄,然后将电阻中的颜色提取出来,并对电阻图像色标进行定位,然后将电阻的图像进行修正处理,经过图像输入色标对比来确定色环电阻的阻值。
这种方法可以在大型工程流水线作业场合进行使用,可以进行比较快速的色环识别和相关组织的判断[5]。
方法三:
基于Android系统的色环电阻识别。
1.4课题研究意义
在现在实验室中,普遍通过人工观察色环颜色来判断阻值,从而选取相应的电阻,但由于色环电阻本身体积较小,颜色复杂,通过人工识别色环读出阻值效率较低,并且对于色盲群体来说,通过识别颜色来读出阻值便显得更为困难,所以有必要使用简单的工具,快速的实现对色环电阻阻值的识别。
本次设计的Androidapp便可以通过简单的拍摄功能,实现对色环电阻阻值的判断,从而大大减轻了识别并选取电阻的负担,同时以其高效实用性的特点,也方便学生和工程师的使用[6]。
2工作任务及主要内容
2.1主要完成的工作
(1)前期完成对Android环境的搭建。
Android的开发平台有很多,常用的开发平台有Intellij、Eclipse、和AndroidStudio等,在这里选择了Eclipse作为开发平台,并配置相关开发环境。
下载安装Eclipse,同时下载并安装JDK、ADT、SDK等工具和支持包,配置JDK和ADT的环境,从而搭建Android开发环境[7]。
(2)中期完成对app功能的实现。
在搭建好Android开发环境后便开始了app功能的实现。
此app的功能需要调用摄像头及摄像头的相关功能,在进行相关的拍摄后将图片保存为JPEG格式,计算出适当的点作为颜色识别关键点,然后通过RGB的值来分析相关的数据,通过在RGB色彩空间中选取对应RGB值最短距离的方法判断对应色环的RGB值,或者继续分析E-96系列阻值表作为修正值,以此实现对电阻色环的颜色的判断,最后通过相关算法将阻值输出[8]。
(3)后期完成对app功能的优化和相关参数的调整。
在实现app的功能后,需要对摄像头的相关聚焦等功能进行优化,然后是识别出电阻的范围来缩小所需识别的范围,并增添相关关键点和对点的参数的调整来减少误差[9]。
2.2主要内容
2.2.1运用的方法
(1)图像的拍摄:
Android摄像头及相关功能的调用。
(2)图像的处理:
设置相关的网格线并识别电阻的范围来缩小所需识别的范围。
(3)色环的识别:
通过在RGB色彩空间中求对应RGB值的最小距离来判断对应色环的RGB值,并和E-96系列阻值表进行相关分析得出修正值。
(4)阻值的识别:
通过对应RGB的值来设定相关的阻值。
2.2.2开发环境选择
开发Androidapp的环境很多,这里选择了比较成熟的Eclipse作为开发平台,并搭建Android开发环境。
在硬件方面使用常用的Android手机作为终端进行程序的调试。
3安卓开发环境的搭建
3.1Eclipse的下载
Eclipse是一个开发工具框架,也是一个跨平台的开发环境,并且自由集成,使用者可以根据自己的需求,通过下载插件的方法,这样就可以搭建出属于自己的开发环境了。
因为Eclipse需要JDK的相关配置,所以需要安装JDK才能正常运行Eclipse。
3.2JDK的下载与相关环境配置
JDK(JavaDevelopmentKit)是整个Java的核心。
JDK包括了Java运行环境Java工具、JRE、Java基础类库等。
因为JDK有许多版本,所以需要根据自己的电脑系统,进行相应的选择。
在配置JDK的时候需要配置相关的环境变量,通常变量名设置为JAVA_HOME与JRE_HOME,变量值就是其安装目录。
添加环境变量分别为:
%JAVA_HOME%\bin与%JRE_HOME%\bin,这中间也可以通过查找相关文件的目录来进行环境变量的添加。
在环境配置完成后,可以通过命令行窗口输入Java、Java–version和javac命令验证JDK是否成功安装[10]。
3.3ADT的下载与相关环境配置
Android的软件开发过程,需要用到工具集和相应库文件,ADT是一种工具插件,在Eclipse下对SDK进行管理。
相关库文件、硬件系统、工具集以及操作系统相关内容使用SDK进行打包,所以下载SDK是开发Android的前提,因为不同的版本所匹配的工具不同,所以要下载不同版本的SDK。
3.4SDK相关工具的下载
SDK(SoftwareDevelopmentKit)是开发工具的集合,是软件工程师们建立的特定的集合工具,我们可以根据自己不同的需求下载不同的版本,同时因为版本更新的相关原因,所以建议在下载高版本的工具包时,也下载低版本的工具包。
4程序功能设计
4.1色环电阻检测系统分析
色环电阻是电子控件中比较常见的控件,常见的色环电阻有以下两种,即四个色环和五个色环的电阻,可以通过色环的颜色和分布来确定其阻值。
人们经常需要观察色环电阻色环的分布和颜色来进行阻值的计算,这样就显得比较麻烦。
一个方面因为色环电阻的尺寸很小,所以不容易看清,同时即使是同一个阻值的电阻也会存在颜色大小和分布的差异,另一个方面便是对于色盲群体来说,色环电阻的识别就显得尤为困难,所以对于色环电阻的识别就成为了一个必要的工作。
通过相关实现的分析,可以看出本次所设计的app具一定的功用效果。
同时也可以方便实验室中对色环电阻的选取,提高实验效率和准确性[11]。
色环电阻颜色识别方法:
色环电阻通过按顺序读出色环的颜色所代表的数值、倍率和误差来进行相关的计算。
色环电阻目前主要有四环电阻、五环电阻和六环电阻。
目前实验中常用到的是E-96系列的五环电阻。
我们可以通过表4-1来进行色环电阻阻值的计算,其方法如下[12]:
表4-1色环电阻颜色计算方法表
颜色
数值
倍数
误差
温度关系
棕色
1
10
1
100
红色
2
100
2
50
橙色
3
1k
15
黄色
4
10k
25
绿色
5
100k
0.5
蓝色
6
1000k=1m
0.25
10
紫色
7
10m
0.1
5
灰色
8
0.05
1
白色
9
黑色
0
1
金色
-
0.1
5
银色
-
0.01
10
无色
-
20
五环电阻指的是一共用五条色环表示电阻的相关数值,通常情况下,五条色环分布并不是均匀的,而是存在有一边的一条色环较其他四条色环的距离更大一些,那么就可以把这条色环当作色环电阻的尾部。
然后从头部开始读,前三位按顺序表示数值,第四位表示倍率,第五条色环表示误差。
如图4-1[13]。
图4-1四环电阻的读数规则图
4.2app功能实现总体结构
图4-2流程图
4.3界面的设置
在Eclipse下首先对程序界面进行相关设置,首先在xml里进行相关设置,在这里选择绝对布局,界面宽和高这里设置为fill-parent,对其中的控件坐标进行设置。
在surfaceview里宽和高为640dip和360dip。
对相关按钮安坐标进行相应分布。
对imageview宽和高分别设置为wrap_content。
Textview的宽和高这里设置为wrap_content,背景设置为白色,textcolor设置为黑色,textsize设置为15dip。
接着用Java对界面进行相关设置。
在这里我设置为横屏并全屏显示,将主界面设置为充满屏幕[14]。
4.4相关控件的设计
对相机的相关控件进行设计,添加色环电阻图片保存的功能。
首先通过R文件得到拍照预览surfaceview的引用,然后设置初始化开始按钮的引用,初始化停止按钮的引用,初始化拍照按钮的引用,并为三个按钮添加监听器,获得surfaceholder,随后添加回调接口的实现[15]。
4.5初始化相机的方法
在拍摄之前需要初始化相机,添加若相机不为空则释放相机的功能,设置为停止预览,释放照相机对象,清空照相机引用。
如果在非预览状态,且未打开照相机则打开照相机,如果照相机成功打开且处于非预览状态则进入预览状态。
接着需要设置照片的格式,这里将照片的格式设置为JPEG,然后对照相机的对焦方式进行设置,这里设置为FOCUS_MODE_AUTO。
最后设置照相机的预览者,开始预览,将状态标志位设置成true表示正在预览。
在对相机进行相关初始化后,然后设置快门回调接口、拍照回调接口,在照片显示的程序中,将图片显示到下方的imageview中。
在拍摄完成后,停止预览模式,并进行释放[16]。
4.6重写回调接口中的方法
重写SurfaceHolder.Callback接口中的方法
@Override
publicvoidsurfaceChanged(SurfaceHolderarg0,intarg1,intarg2,intarg3){}
@Override
publicvoidsurfaceCreated(SurfaceHolderarg0){}
@Override
publicvoidsurfaceDestroyed(SurfaceHolderarg0){}
重写OnClickListener接口中的方法
按下的为开始按钮,则初始化照相机,按下保存按钮,若没有拍摄电阻则报错。
由于添加了色环电阻图片保存的功能,所以需要用到内存卡,如果没有插入闪存卡则报错。
然后获取闪存卡的路径,Stringpath=Environment.getExternalStorageDirectory().getAbsolutePath();寻找可以使用的文件名,path为图片地址。
将图片的格式设置为JPEG,品质设置为100,使用输出流。
5、色环电阻颜色的识别功能
5.1识别电阻的功能
如果需要增加电阻识别的准确度和颜色的精度,则需要添加识别电阻的功能。
这里选取的是识别固定形状和选取固定色差作为识别电阻的功能。
将电阻识别出来后,就可以在较小的范围内对电阻的色环进行相关的分析,所选取的相关关键点也就更加准确,从而增加了电阻识别的准确度。
如下图5-1为电阻识别之前的图像,通过对电阻轮廓的识别之后,图像为图5-2。
这样就减少了所需识别的范围,同时也提高了精确度[17]。
图5-1电阻识别之前图
图5-2电阻识别后图
5.2关键点的选取
在电阻识别出来后,即电阻的轮廓已经识别完成,接下来需要选取关键点,以此来识别出色环电阻色环的颜色。
这里按照色环电阻色环的分布距离,在已经识别出来的电阻图像中选取相应的坐标。
按照电阻色环的分布的距离选择了五个横坐标的距离,然后以五个横坐为参考,分别选取三到四个纵坐标的值,这样就在识别出来的电阻轮廓中,将五个色环通过每个色环上选取三到四个参考点,识别出色环电阻色环的颜色。
由于每个色环的分布选取的是三到四个点作为关键点,然后将每个色环上多个关键点的值,通过在RGB色彩空间下求最短距离的方法,求出色环最接近那个颜色的RGB值。
如下图5-3,将每个色环选取三个点的坐标点作为关键点,通过在RGB色彩空间下求最短的方法求出色环最接近的颜色,这样可以减少识别出来的误差[18]。
图5-3电阻色环关键点选择
5.3RGB值的获取
在识别出电阻后,并选取好了适当的关键点,接下来就需要获取正确的RGB值了,由于颜色的偏差,这里需要选取最接近的RGB值作为色环电阻色环颜色的值。
我们首先将色环电阻色环的十二种颜色的RGB值作为参考值,然后将之前所选取的每个色环上的三个关键点的RGB值分别于这十二种颜色的RGB值做比较。
可以使用RGB色彩空间的方法。
距离运算的公式如5-1:
(5-1)
首先选取第
个点,表示第i行的第j个与色环十二个不同颜色中第n个色环作比较的点,分别与之前选取的色环十二个不同颜色的RGB值做距离运算,
分别代表色环十二个不同颜色中第n个色环颜色的R值G值和B值。
分别表示该点实际的RGB值,这样就求得了第i行第j个与色环十二个不同颜色中第n个色环作比较的点的距离。
然后求出对应的最小距离的RGB的修正值作为
如5-2:
(5-2)
在求出对应的最小距离的RGB的修正值后,将第i行的三个点做比较,当三个修正值至少有两个相同的时候,将该修正值作为该点的颜色[19]。
5.4匹配E-96系列阻值表阻值
常用的电阻的阻值的组合可以参照图5-1。
将所获取的电阻的阻值与E-96系列阻值表阻值进行相关的匹配。
首先将E-96系列电阻阻值表的值放入数组,然后将前面所获取的RGB色彩空间进行修正后的电阻阻值,与该表的值相减取绝对值,最小绝对值对应的阻值最接近于E-96系列阻值表的值,并向下取对应接近的值作为最终的修正值,最终所得到的值便是所需要的该电阻的阻值。
如果不是E-96系列阻值表的阻值,则使用对于全部阻值的程序。
图5-1E-96系列电阻阻值表图
5.5电阻阻值的获取
将前三个数值依次显示出来,第四个数值作为10的幂显示,第五个数值作为相关误差的显现即可。
6、程序功能的相关分析
该程序可以通过对色环电阻拍照,从而显示出色环电阻对应的阻值。
通过调用摄像头,和摄像头的对焦相关功能,是对拍摄的图像的一种优化方式,然后对电阻的识别也是对图像的一种优化,由于该程序是在RGB的处理上进行相关颜色的判断,所以不再对图像进行另外的处理。
同时由于每个手机摄像头的像素不同,同时电阻的体积过小,所以在不同的手机上功能的实现程度有一定的区别,如果摄像头的像素较高,那么所识别出来的电阻的阻值也越准确。
如果在光线条件较好的场所对色环电阻进行拍照识别,可以大大增加电阻识别的准确程度,如果是通过闪光灯进行光线的增强,由于距离是近距离,反光太强的原因,效果较差,所以在对摄像机的功能调用时没有调用闪光灯的功能,测试结果如图6-1。
总体来说该程序的电阻识别效果还不错,在光线条件及手机摄像头像素较好的条件下,进行了十组测试,测试结果有八组效果较好,识别的准确程度可以打的百分之八十左右[20]。
图6-1电阻识别图
结论
该程序可以通过对色环电阻拍照,从而显示出色环电阻对应的阻值。
可以快速的实现对色环电阻阻值的识别。
本次设计的Androidapp便可以通过简单的拍摄功能,实现对色环电阻阻值的判断,从而大大减轻了识别并选取电阻的负担,同时以其高效实用性的特点,也方便学生和工程师的使用。
总体来说该程序的电阻识别效果还不错,在光线条件及手机摄像头像素较好的条件下,进行了十组测试,测试结果有八组效果较好,识别的准确程度可以打的百分之八十左右。
参考文献
[1]李静,王正军.图像检测与目标跟踪技术[D].北
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 系统 色环 电阻 识别