基于MATLAB的苹果外观特征检测

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB的苹果外观特征检测

摘要本文根据苹果分级判定标准中的两个评定指标:果径和果面缺陷,探讨如何利用MATLAB技术进行苹果外观的特征检测,从而提高苹果品质检测的工作效率。

关键词 MATLAB;苹果分级;果径;果面缺陷

0引言

近年来,随着人们生活水平的提高,对于水果的品质要求也不断提高,实行水果分级销售成为当前市场的一个趋势。传统的水果等级评判主要依靠工人手摸、眼看,评定指标不客观,且人工成本高、效率低,不利于产业的规模化、工业化发展。因此,利用计算机图像技术研究客观、方便、高效的水果品质检测方法具有较大的应用前景。在本文中,作者以苹果为例,探讨基于MA TLAB的苹果外观特征检测方法。

根据国家质检总局2003年发布的《烟台苹果原产地域产品国家标准》(以下简称《标准》),对于苹果分级的评定指标分为:品质基本要求、色泽、果径(最大横切面直径)、果面缺陷等方面内容,每一项都有具体分级标准。其中,品质基本要求为概略性的总体要求,苹果色泽由于品种的不同,色泽不同。因此,本文着重从果径及果面缺陷两方面特征对苹果进行检测判定。主要采用单个苹果照片进行检测。检测前,首先固定图像采集设备和检测平台的位置,同时固定各项拍摄参数(焦距、像素等)不变,并确保用于分析的每张照片长度、宽度保持一致。

1 果径(最大横切面直径)检测

对果径的检测思路为:将图片灰度化、二值化后,利用regionprops函数计算二值化图像的最小外接矩形大小,外接矩形框长度和宽度中的最大值即为苹果最大横切面直径。不过,此时的数值为像素值,通过与照片的长、宽像素值进行比较,结合图片的实际长、宽值,即可求出果径的实际长度。

图1 设定苹果照片参数

在实验过程中,直接将图片灰度化、二值化后得到的苹果图像边缘不完整,因此考虑将图像转换到HSI颜色空间,利用S分量进行灰度化、二值化处理,较好的保留了苹果的边缘。

首先,将照片由RGB颜色空间转换为HSI颜色空间。

%RGB 2 HSI

rgb=imread('apple0.jpg');

rgb = im2double(rgb);

r = rgb(:, :, 1);

g = rgb(:, :, 2);

b = rgb(:, :, 3);

num = 0.5*((r - g) + (r - b));

den = sqrt((r - g).^2 + (r - b).*(g - b));

theta = acos(num./(den + eps));

H = theta;

H(b > g) = 2*pi - H(b > g);

H = H/(2*pi);

num = min(min(r, g), b);

den = r + g + b;

den(den == 0) = eps;

S = 1 - 3.* num./den;

H(S == 0) = 0;

I = (r + g + b)/3;

% Combine all three results into an hsi image.

hsi = cat(3, H, S, I);

图2 HSI空间的苹果图片

提取HSI中的S分量,可以直接利用im2bw函数将S分量二值化。0.2为实验数值,level=0.2时二值化图像最理想。

S=im2bw(S,0.2);

imshow(S)

图3 S分量图像及S分量二值化后图像

求取外接最小矩形框,并利用regionprops函数计算图像区域的属性信息,并读取矩形的长、宽数据,以长、宽中的最大值为果径的数值。注意这里的数值为像素值。

图4 二值化图像的最小外接矩形框

[l,m]=bwlabel(S,8);

status=regionprops(l,'BoundingBox');

x=status(2,1).BoundingBox; %读取矩形的长宽

X=max(x); %取最大值

取得果径的像素值后,与图片的长(宽)像素值相比。由于图片的像素、实际长宽等数值已预先设定并保持不变,因此根据果径像素与图片像素的比值可求出果径的实际数值。

2 果面缺陷检测

果面的缺陷主要包括压伤、碰伤、虫蛀伤等,表现为与正常果面色泽、质地不一致。因此可通过提取果面的图像特征,检测缺陷情况。

图5 有缺陷的苹果果面

首先,读入图像后用rgb2gray函数对受检苹果进行灰度化,并用imadjust函数调整灰度图像的强度值。

I= imread('apple3.jpg');

I2= rgb2gray(I);

J= imadjust(I2,[0.1 0.2],[]);

图6 灰度图像及imajust增强后的图像

利用im2bw函数将调整后的灰度图像转换为二值图像,level值取1。为方便检测,对二值图像进行取反处理。Y=im2bw(J,1);Y=~Y。

图7 转换为二值图像并取反

与计算果径的方法相同,求病斑区域的外接矩形框,并利用regionprops函数计算图像区域的属性信息。

[l,m]=bwlabel(Y,8);

status=regionprops(l,'BoundingBox');

imshow(Y);

hold on;

for i=1:m

rectangle('position',status(i).BoundingBox,'edgecolor','r');

end

hold off;

图8 病斑区域的外接矩形框

值得注意的是,由于病斑的不规则,且一个果面可能会有多个病斑,图像区域中会有多个外接矩形框,因此需要对每个矩形框的大小进行判定,选取面积最大的矩形框。

[x,y]=size(status); %读取图片信息

for i=1:x %共有x个矩形框

X(i)=max(status(i).BoundingBox); %取矩形框最大值

end

x2=status(i,1).BoundingBox; %读取矩形框的长、宽

x2(1)

x2(2)

在这里,以最大矩形框的面积近似为病斑的面积。通过矩形框尺寸的像素值与照片长、宽像素值的比值,以及照片实际尺寸,进而确定病斑实际面积。

3 结论

通过前面的测试,初步实现了利用MA TLAB技术对苹果的大小(最大横切面直径)、苹果表面病斑面积等评定指标的检测判定,达到了预期目的。需要指出的是,在计算病斑的实际面积时采取了近似外接矩形框面积的方法,存在一定误差,但是该误差对于果品的分级检测来说是在误

相关文档
最新文档