苹果的特征检测与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 (b>0)

    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);

B=medfilt2(I2);

B2=medfilt2(B);

B3=medfilt2(B2);

B4=medfilt2(B3);

B5=medfilt2(B4);

B6=medfilt2(B5);

BW=edge(B6,'sobel',0.1);

figure,subplot(1,4,1),imshow(I);

subplot(1,4,2),imshow(I2);

subplot(1,4,3),imshow(B6);

subplot(1,4,4),imshow(BW);

figure,[C,h]=imcontour(BW);

a=diff(C);

[x,y]=size(a);

sum=0;

for i=1:x

    for j=1:y

        sum=sum+a(i,j);

    end

end

if (sum>8000||sum<-5.0000e+005)

    fprintf('无果梗');

else

    fprintf('有果梗');

end


a原始图片b灰度图片c滤波后的图片 d边缘检测          e数据轮廓线

图3检测果梗过程中的图像变换

4结论

通过在Matlab上实验分析,应用这些特征加以判断对水果进行分级,解决了苹果自动分级视觉信息处理中亟待进一步完善的问题——果梗判别,与此同时还能进行边缘检测,算法简单易行,再加上算法本身既适合于并行处理,又适合于硬件电路实现,为苹果自动分级系统的真正实施打下了坚实的基础。

 

参考文献:

[1] Tao Y, ChanceL, BaorenL .FullScale Fruit Vision Sorting System Design-Factors and Considerations[A]. Proceeding soft the FPAC  Conference[C]. Chicago, Illinois.1995.14-22.

[2] 田捷,沙飞,张新生编著.实用图像分析与处理技术.北京:电子工业出版社,1995.127~129

[3] 宁素俭,李强,杨文志.计算机视觉轮廓的获取及其尺寸测量.农业机械学报,1996,27(2):44~49

[4] Wen Z, Tao Y. Dual-camera NIR/MIR imaging for stem-end/calyx identification in apple defect sorting. Transaction of ASAE, 2000, 43(2): 446-452

[5] Tao Y, Morrow CT, Heine man n P. Fourier-based separation technique for shape grading of potatoes using machine vision. Transaction of ASEA,1995,38(3):949~957

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值