罐底字符识别

罐底字符识别

ID:20451459

大小:385.25 KB

页数:8页

时间:2018-10-13

罐底字符识别_第1页
罐底字符识别_第2页
罐底字符识别_第3页
罐底字符识别_第4页
罐底字符识别_第5页
资源描述:

《罐底字符识别》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一.作业和讨论¡工业流水线上对易拉罐底字符进行检测,设计视觉检测系统及算法,实现罐底各种字体的数字检测。分析:视觉检测系统搭建:例如,下图是基于PC的机器视觉系统示意图。1.光源选择:OPT-RID240-W光源说明RID球积分光源具有积分效果的半球内壁,均匀反射从底部360度发射出的光线,使整个图像的照度十分均匀,主要适合于曲面、表面凹凸、弧形表面等物体和金属、玻璃表面等反光较强的物体表面的检测。2.工业摄像机一般是根据待检测物体的尺寸和要求的分辨率来选择。如在该系统中,假设易拉罐底是半径为30mm,如果要求分辨率为0.1mm,则相机视角

2、至少为60mm*60mm,相机横纵最小像素为60mm/0.1mm=600pix。可以选择分辨率1024*768像素,像元尺寸为4.65um*4.65um,靶面大小为1/3’’的相机。1.镜头选择选择镜头时,通常要注意一个原则:即小尺寸靶面的CCD可使用对应规格更大的镜头,反之则不行。镜头分辨率为≥1000/(2*4.65)=77.5lp/mm(根据Nycuist采样定理)假设工作距离为10cm放大倍数=像元尺寸/系统分辨率=4.65/(0.1*100)=0.465焦距=工作距离*放大倍数/(放大倍数+1)=相元尺寸/系统分辨率=32mm根据

3、上述方法,即可以确定选择1/3’’,焦距为35mm,分辨率为80-100pl/mm的镜头。2.图像处理系统:①方案一,选择DSP处理器,成本低,其集成度高,实时性强,处理速度快,其可编程性及强大的处理能力,使得这样的系统有很高的性价比。②方案二:使用工业计算机。3.图像显示:PC端使用MFC或者QT编写界面算法:搭建好系统后,可以采集到如下图像:算法实现过程:整体思路:将采集回来的图像,先进行预处理(如滤波、增强、二值化、膨胀腐蚀等),再将图像进行字符分割,再进行字符归一化,将分割出来的字符和预先储存的模板比较(模板匹配),输出最相近的字符

4、。如在matlab中实现:1.字符图像获取%读取图片image1=imread('character.jpg');1.转成灰度图%2RGBimage转灰度图ifsize(image1,3)==3image1=rgb2gray(image1);end2.分割字符区域由于罐底的字符基本是处于中间位置,不可能靠近边缘,可以直接提取中间稍微小的区域,具体的值大小根据采集环境而定,下面的值是经调试出来的。image1=imcrop(image1,[145200500240]);1.预处理(滤波,二值化,取反,膨胀腐蚀)取反是为了后面旋转操作做准备;膨

5、胀腐蚀解决字符不连续问题。image1=medfilt2(image1,[22]);%均值滤波image1=im2bw(image1,240/255);%阈值分割image1=imcomplement(image1);%取反%腐蚀运算连接字符边界SE=strel('square',3);image1=imerode(image1,SE);image1=imdilate(image1,strel('rectangle',[4,2]));2.字符旋转矫正利用图像投影,就是说将图像在某一方向上做线性积分(或理解为累加求和)。如果将图像看成二维函数

6、f(x,y),则其投影就是在特定方向上的线性积分,比如f(x,y)在垂直方向上的线性积分就是其在x轴上的投影;f(x,y)在水平方向上的线积分就是其在y轴上的投影。。Radon变换(拉东变换),就是将数字图像矩阵在某一指定角度射线方向上做投影变换。这就是说可以沿着任意角度theta来做Radon变换。Radon变换找到倾斜角,进行矫正,MATLAB中其函数为radon();找到旋转角度后,调用旋转函数imrotate();%Radon变换找到倾斜角,进行矫正theta=1:180;[R,xp]=radon(image1,theta);dis

7、=zeros(180,1);forn=1:180x0=find(R(:,n)>0);x1=min(x0);x2=max(x0);dis(n)=x2-x1;endro=find(dis<=min(dis));J=ro(1);qingxiejiao=90-J;image1=imrotate(image1,qingxiejiao,'bilinear','crop');%旋转1.字符区域分割分别找出x方向和y方向像素不为0的范围,在利用这范围进行分割。其函数为imcrop()。y1=find(sum(image1')~=0,1,'first');y

8、2=find(sum(image1')~=0,1,'last');x1=find(sum(image1)~=0,1,'first');x2=find(sum(image1)~=0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。