苹果的特征检测与MATLAB实现.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
苹果的特征检测与MATLAB实现

苹果的特征检测与MATLAB实现 摘 要 ?本文选取了可用于苹果分级的部分特征,并在Matlab上进行试验检测。该方法可以对苹果的外部缺陷、果梗、尺寸和形状进行全面的检测,在此基础上可对苹果进行高速和精确的分级。 关键词? 分级 ;? 缺陷 ;? 果梗 ? 0 引言 近年来,国外在利用计算机视觉技术进行水果品质检测方面做了大量研究,并获得了许多重要成果;在我国也有许多研究报导,但到目前为止都处于试验阶段,而且分析方法距实际应用还有一段距离。特别是在缺陷检测方面,目前采用的方法处理速度很慢,在实际在线工作时无法使用。国外学者(ChengX等)在识别缺陷时获得成功,但需要同时使用近红外和中红外摄像设备,这2种设备造价之昂贵,使得该方法的应用受到限制,无法在农业分级设备中广泛应用。因此,研究适合于生产的分级检测方法有重要意义。 1大小检测 对于苹果大小的检测,主要依靠求出的苹果面积作为判别依据。本课题所采用的苹果图片都只是单个苹果的图片。首先对图片进行灰度处理,使用的MATLAB函数是rgb2gray;其次使用函数im2bw把灰度图转换为二值图,阈值则取0.9,从而使苹果区域为黑色,其余区域为白色;然后对二值图取反,使黑白颜色区域颠倒,这时的苹果区域为白色;最后利用函数bwarea可以计算白色区域的像素点的个数total。利用total与整幅图片的像素值(x*y)之比,再与图片的面积相乘,便可得出苹果相对图片的面积.利用这个面积我们可以进行筛选. I=imread(图片名.jpg); I2=rgb2gray(I); BW=im2bw(I2,0.9); total=bwarea(~BW) figure,subplot(1,3,1),imshow(I); subplot(1,3,2),imshow(I2); subplot(1,3,3),imshow(BW); 如图1所示: ? ?a原始图片?????? b灰度图片?????? c二值图片 图1 求苹果面积过程中的图像变换 2缺陷检测 对于苹果表面的缺陷(如疤瘌、黑斑等),本课题采用特征提取,即提取出坏损部位的轮廓,再进行填充求其面积,以其面积在图片中的比例作为判别依据。首先,对采集的原始图片(即彩色图片)进行灰度变换;接着用函数imadjust来调整灰度;对灰度图片进行一次中值滤波后,再对图片进行边缘检测;这时坏损的轮廓已经出现,但还有一些噪声存在,为滤掉噪声,要先对坏损的轮廓填充,采用BWfill=imfill(BW,holes)语句,使缺陷部位的像素点为白色;其次是经过滤波,把噪声滤掉求缺陷的像素个数a,与图片总的像素个数(x*y)的比b就是我们判断的依据,本程序设b=0。 I=imread(图片名.jpg); I2=rgb2gray(I); J=imadjust(I2,[0.1 0.3],[]); B=medfilt2(J); BW=edge(B,sobel,0.1); BWfill=imfill(BW,holes); BWfilt=medfilt2(BWfill); BWfilt2=medfilt2(BWfilt); BWfilt3=medfilt2(BWfilt2); BWfilt4=medfilt2(BWfilt3); BWfilt5=medfilt2(BWfilt4); figure,subplot(1,3,1),imshow(I); subplot(1,3,2),imshow(I2); subplot(1,3,3),imshow(J); figure,subplot(1,3,1),imshow(BW); subplot(1,3,2),imshow(BWfill); subplot(1,3,3),imshow(BWfilt5); a=bwarea(BWfilt5); [x,y]=size(I); b=a/(x*y); if (b0) ??? fprintf(有缺陷); else ??? fprintf(无缺陷); end? ?a原始图片???? b灰度图片??? c灰度变换 d边缘检测?????? e轮廓填充????? f滤波 ?? 图2检测苹果表面坏损过程中的图像变换?????? 3果梗检测 对苹果梗的检测,主要是通过对苹果的轮廓线矩阵求差分实现的。利用图像处理技术对苹果的彩色图片进行灰度转换,经滤波后再边缘检测,提取出苹果的轮廓线,利用imcontour函数可以得出轮廓线的矩阵,再用diff函数对矩阵进行差分,把这些差分值累加,于是得到一个sum值。这个值就是我们判断果梗有无的依据。当有果梗时sum会在0到-5.0000e5(估测值)之间,而无果梗的sum值是正值,本程序大概定于8000以上。 I=imread(图片名.jpg); I2=rgb2gray(I)

文档评论(0)

wumanduo11 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档