基于matlab的形状识别汇编.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于matlab的形状识别汇编

1、设计目的 基于Maltab或者C语言对图像进行识别。编写摄像头采集图像程序,对采集的图像进行预处理,如图像增强、图像分割等处理,对于处理的图像进行特征提取,根据特征进行模式识别,如对三角形、正方形与圆形的识别。 2、设计正文 2.1设计分析 编写摄像头采集图像程序 对采集的图像进行预处理 对于处理的图像进行特征提取 进行模式识别,区分各种形状 2.2设计原理 2.2.1图像预处理 彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。由彩色转换为灰度的过程叫做灰度化处理。选择的标准是经过灰度变换彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。由彩色转换为灰度的过程叫做灰度化处理。选择的标准是经过灰度变换。 2.2.2对于处理的图像进行特征值提取 二值图像是指整幅图像画面内仅黑、白二值的图像。在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。车牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提高处理效率。阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为0或255,否则灰度值设置为255或0。 两个具有不同灰度值的相邻区域之间总存在边缘,边缘就是灰度值不连续的结果,是图像分割、纹理特征提取和形状特征提取等图像分析的基础。为了对有意义的边缘点进行分类,与这个点相联系的灰度级必须比在这一点的背景上变换更有效,我们通过门限方法来决定一个值是否有效。所以,如果一个点的二维一阶导数比指定的门限大,我们就定义图像中的次点是一个边缘点,一组这样的依据事先定好的连接准则相连的边缘点就定义为一条边缘。经过一阶的导数的边缘检测,所求的一阶导数高于某个阈值,则确定该点为边缘点,这样会导致检测的边缘点太多。可以通过求梯度局部最大值对应的点,并认定为边缘点,去除非局部最大值,可以检测出精确的边缘。一阶导数的局部最大值对应二阶导数的零交叉点,这样通过找图像强度的二阶导数的零交叉点就能找到精确边缘点。 2.2.3流程设计 调用摄像头 获取图像 读入图片 选取阈值为0.5 图像取反色 二值图象标签化处理 选出被标记图像像素中的最大值 计算图像y的像素点 统计被标记点数的数量 如果被标记点的数量大于总共像素的5%,可以认为这些标记点为被识别物体 找到能构成物体的个体的下标,并组成一维向量,次向量中的数代表被识别物体的标签号+1,向量的维数代表被识别物体的个数 计算所有被识别物体的数量 是被识别物体的标签号 对被识别物体的类型做判断 在图象中选择标签为f1(i)的对象 求面积1 求周长 求面积2 e(i)=4*3.14*F1/求面积2^2; 如果 0.8927e(i) 1.1073则判断为原型 如果 0.73 e(i) 0.8927 则判断为方形 如果 e(i) 0.73 则判断为三角形 2.2设计程序 2.2.1摄像头采集图像程序 vid=videoinput(winvideo,1,YUY2_640x480); set(vid,ReturnedColorSpace,rgb; vidRes=get(vid,VideoResolution); width=vidRes(1); height=vidRes(2); nBands=get(vid,NumberOfBands); figure(Name, 调用摄像头,NumberTitle,Off,ToolBar, None, MenuBar, None); hImage=image(zeros(vidRes(2),vidRes(1),nBands)); preview(vid,hImage); hb1 = uicontrol(String, 拍摄 , ... Callback,a=getsnapshot(vid),imwrite(getsnapshot(vid),图形识别.jpg)); 2.2.2读取图片并调用函数 i = imread(F:\matlab\1.jpg); z=shibie(i); 2.2.3图片处理及图形识别与显示程序 function z=shibie(A) C=im2bw(A,0.52); y=~C; D=bwlabel(y,4); a=max(max(D)); [b,c]=size(y); d=zeros(1,a+1)

文档评论(0)

2232文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档