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

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

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

0 引言

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

根据国家质检总局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 结论

通过前面的测试,初步实现了利用MATLAB技术对苹果的大小(最大横切面直径)、苹果表面病斑面积等评定指标的检测判定,达到了预期目的。需要指出的是,在计算病斑的实际面积时采取了近似外接矩形框面积的方法,存在一定误差,但是该误差对于果品的分级检测来说是在误差的允许范围内,并不会对检测结果造成本质上的影响。从图7、图8中可以看到,除了主要的病斑区域外,左下角还有一个小白点,回到原图可以发现,这是果面的另一处小虫洞,可见该程序能比较真实的反映果面缺陷情况。本文中基于MATLAB的苹果外观特征检测方法相对简单,且不需要非常复杂、昂贵的设备,能以较小的成本实现苹果的外观分级检测,有利于该检测技术、设备在生产实践中的推广应用,达到提高生产效率的目的。

参考文献

[1] 王术兰, 徐晓辉, 胡慧. 苹果的特征检测与MATLAB实现. 计算机与信息技术, 2006,01:79~80

[2] 杨高波, 杜青松编著. MATLAB图像/视频处理应用及实例. 北京:电子工业出版社.2010.

[3] 杨杰主编. 数字图像处理及MATLAB实现. 北京:电子工业出版社.2010.

[4] 邓薇编著. MATLAB函数速查手册. 北京:人民邮电出版社.2010.

基于MATLAB的苹果外观特征检测相关推荐

  1. 【水果识别】基于matlab GUI苹果分级系统(带面板)【含Matlab源码 1827期】

    一.简介 中国苹果产销量居世界首位,传统的苹果分级由人工完成,长期以来,其劣势逐渐显现.因此,智能分拣是当今苹果分级的主要任务,而大小又是苹果分级的重要参考指标.国内外专家做了许多基于图像处理的苹果大 ...

  2. 基于MATLAB的苹果质量检测自动分级系统

    现在商业行为中,在水果出厂前都需要进行质量检测,需要将不同等级的水果进行分级包装,以保证商业利益最大化.可是传统方法都是依靠人工进行检测,效率低下,主观成分大,并不能很好客观地评价出货质量,导致工厂损 ...

  3. 基于MATLAB的水果分级设计

    基于MATLAB的水果分级识别技术研究 摘 要 本次毕业设计介绍了基于MATLAB的水果分级自动识别,利用手机端获取苹果的样本图像,应用MATLAB软件编程实现了对样本图像的预处理,包括图像滤波.图像 ...

  4. 【CV/Matlab系列】基于图像处理的苹果质量检测和分级系统【含Matlab源码】

    DATE: 2020.10.18 文章目录 前言 1.代码获取方式 2.效果展示 2.1.示例1 2.2.示例2 前言 在之前大学毕设时,设计了一种基于图像处理的苹果质量检测和分级系统.采用matla ...

  5. MATLAB苹果的特征检测

    MATLAB苹果的特征检测 摘 要 本文选取了可用于苹果分级的部分特征,并在Matlab上进行试验检测.该方法可以对苹果的外部缺陷.果梗.尺寸和形状进行全面的检测,在此基础上可对苹果进行高速和精确的分 ...

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

    苹果的特征检测与MATLAB实现 摘 要 本文选取了可用于苹果分级的部分特征,并在Matlab上进行试验检测.该方法可以对苹果的外部缺陷.果梗.尺寸和形状进行全面的检测,在此基础上可对苹果进行高速和精 ...

  7. 基于matlab国内外水果自动分级方面,水果自动识别的BP神经网络方法

    摘  要:针对多种水果混合的图像,对各种水果的提取和识别进行研究.利用Matlab软件进行图像数据获取.对比度增强.去噪.二值化处理:为弥补二值化后图像中出现的断边.孔洞,借助Sobel算子进行边缘提 ...

  8. 基于MATLAB机器视觉的水果分级检测系统的设计

    摘 要 计算机视觉应用于水果的品质检测,带来了许多方便.既可以提高检测的精度.准确度.又节省了大量的劳动力,让人们从繁重的人工检测工作中解脱出来.本文以苹果为研究对象,研究了计算机视觉技术应用于水果分 ...

  9. 基于MATLAB机器视觉的水果品质检测

    摘 要:水果品质检测关系到水果的包装运输贮藏和销售的效果和收益.传统的外观品质检测主要是利用分级机械,其存在很多不足之处,因此提出了利用机器视觉进行无损检测的技术.利用机器视觉技术主要是检测水果的大小 ...

最新文章

  1. js 变量、函数提升
  2. zabbix监控linux文件目录,zabbix之日志文件监控
  3. 谷歌chrome浏览器的源码分析(三)
  4. ORA-29339错误解决办法
  5. 恐鬼症不显示服务器区域,恐鬼症 steam版【简体中文】【4.34GB】
  6. Cookie和会话Session
  7. 【算法系列之五】对称二叉树
  8. 【动态规划】多重背包
  9. java markdown转word_一键将 Word 转换为 Markdown
  10. 2014-10-30NOIP复习题1
  11. Rancher Kubernetes Engine(RKE)正式发布:闪电般的Kubernetes安装部署体验 1
  12. zabbix node.js mysql_Zabbix添加Node.js监控的方法
  13. dell R710 更换raid卡后,raid卡信息没有了,处理方案
  14. 一步步写俄罗斯方块(二)
  15. 如何成为一个具有批判性思维的人?
  16. 【Ubuntu】基于 Ubuntu 搭建 Discuz 论坛
  17. 语音合成论文优选STYLER: Style Modeling with Rapidity and Robustness via Speech Decomposition for Expressive
  18. 【蓝桥杯备战】 Day02
  19. 某图书管理系统的类图
  20. 用mysql建销售订单主表_mysql订单表如何设计?

热门文章

  1. 软件测试自动化流程图,RPA让软件自动化测试迈入快车道
  2. linux 格式化u盘失败怎么办,mkfs.ext2 mkfs.vfat 格式化u盘时失败
  3. 磁盘接口,电脑sata mode 磁盘模式,磁盘分区表类型,bios mode
  4. 解决Cannot fit requested classes in a single dex file
  5. IDEA运行后target目录中没有classes,项目没有打包
  6. 二进制在计算机中的存储方法
  7. seachange服务器装系统,其他部署说明 – 开机启动 Seafile - Seafile 服务器用户手册...
  8. 倍福--控制电缸的配置
  9. 使用echarts绘制geo地图
  10. 秦朋 - 我的PHP学习成长之路