基于图像分析的橙子识别和计数研究.docx
- 文档编号:29598319
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:18
- 大小:559.20KB
基于图像分析的橙子识别和计数研究.docx
《基于图像分析的橙子识别和计数研究.docx》由会员分享,可在线阅读,更多相关《基于图像分析的橙子识别和计数研究.docx(18页珍藏版)》请在冰豆网上搜索。
基于图像分析的橙子识别和计数研究
基于图像分析的橙子识别和计数研究
摘要:
随着计算机技术的快速发展,农业所使用的手段也在更新换代。
以前所使用的通过人工来识别水果和技术的方法已经不能满足农民的需求,通过计算机对图像的分析可以快速完成对水果的识别,节省大量的时间和劳动力。
本文对于球状水果,用MATLAB作为研究手段,从图像特征灰度化开始,通过小波去噪与中值滤波对图像进行预处理,用sobel算子做边缘检测,通过基于形态学的图像特征抽取和分析,最后用分水岭图像分割法实现目标识别与计数。
该课题充分利用了MATLAB平台在图像处理方面的优势,经过优化和调试,可以快速准确地分析出结果。
关键词:
MATLAB;形态学;分水岭算法
第一章引言
1论文概述
1.1课题研究目的和意义
我国的水果品种丰富多样,产量在世界排于首位,但是我国水果的出口量仅达到世界的0.02。
目前,我国的水果销售主要都集中在本土市场,国内的水果价格与国外相比,要低一些,其中最主要的原因是落后的水果分级技术。
国内水果分级绝大部分是通过人眼识别和采摘的,由于近几年国家的理念核心是以人为本,重视人才,人工成本的提升使得水果成本增加。
国外多用机器设备进行水果分级而国内对于水果分级的研究还不完善,使得国内只能进口国外机器。
但国内由于进口设备价格昂贵,企业难以负担,水果分级分类基本上由人工完成。
但人工分级任务繁重,消耗大量人力资源,且国内水果分级技术落后,不能生产与国外相同的设备,这就要求国内研究者在水果分级技术进一步钻研。
将图像处理技术引入果园自动化,是解决该问题的有效途径之一。
通过研究这个课题不但可以加深对图像处理基本思想的理解和对其方法的掌握,还熟悉了图像处理中的精髓内容--目标分类识别。
本课题的研究具有分厂重要的经济和使用价值,应用前景十分广阔。
因此,很有必要对本课题进行深入细致的研究。
本课题选取橙子为研究对象,通过MATLAB仿真平台,介绍如何对图像的进行预处理和特征提取,并通过对橙子特征的分析对比进行识别和计数,以达到智能识别与处理的目的。
1.2水果识别研究现状
随着改革开放进程的不断加快,计算机技术的发展也越来越快,在计算机图像学的领域也出现了越来越多的研究成果。
世界各国的学者们在这一方面进行的研究都能够在一定程度上改进水果分级的速度,并取得良好的经济效益。
而我国研究时间短暂,方式繁琐,不能与国外相比,但也为我国水果识别研究奠定了基础。
水果大小、形状和颜色等都是水果识别和分级的重要指标条件。
1.2.1国外研究现状
在国外,机器视觉是70年代开始兴起的,它主要应用于卫星遥感和医学方面。
国外学者Throop[1]等人从不同的空间角度来获取苹果的平面图像,然后通过这些图像便可以获取到其赤道半径的大小,再根据半径即可以计算出面积;紧接着将苹果作为一个椭球体来处理,分别测量计算出其几何参数,最后根据所获得的信息估算苹果的大小。
国外学者Koc[2]的研究成果有关于如何测算西瓜体系的方法,首先获取西瓜在不同的空间平面上的投影图,以足够数量的投影图来形成轮廓切片,接下来沿着某一定轴旋转切片,这些不同的切线在旋转过程中发生重合的部分的体积就是西瓜的体积。
Blasco等人[3]分别使用了两种方法来实时地区分四种不同石榴的品种,即算像素RGB平均值与对R/G设定简单阈值的方法,区分的成功率很高,高于90%。
国外学者Tao[4]等人的研究成果中有关于如何以计算机视觉技术为基础来检测苹果缺陷的技术,此技术应用于检测可以使得检测工作更加的高效和准确。
此项技术的大致原理如下:
首先是通过传统技术来获取六个苹果的图像,然后通过分离或者降噪技术进行进一步处理,处理之后在进行果面缺陷的计算工作。
因为苹果表面并不平整,而是具有一定的曲率,而曲率会造成光照强度的不均匀,这里以变换缺陷和变换形状的手段来对其进行一定的补偿。
1.2.2国内研究现状
按照大小指标分类,国内学者应义斌曾发表了基于计算机视觉方法来测量水果尺寸的技术方面的研究成果,在研究苹果的外观特性的过程中,学者章文英用苹果的质量中心与其最小外接正四棱柱的相接点之间的距离的大小来来表示椭球体的的长径和短径的大小,并且取得了不错的效果,王雅琴等学者为了表示其大小所使用的参数是傅里叶半径,而冯斌等学者标了表示其外形特征而使用的参数是其自然对称形态的特征。
按形状指标分类,何东健、宁纪锋等人为测量果实形状使用图像形态学分析,准确率很高,最高可以呈现出91.4%。
赵静、何东健用半径作为研究方向,通过人工神经网络对水果的形状进行识别和分级。
景寒松、应义斌等人提出了采用傅立叶变换与傅立叶反变换来描述黄花梨的形状[6]。
按颜色指标分类。
国内学者冯斌等人曾经以水果的颜色作为研究对象对其进行过等级划分。
学者何东健,杨青等人通过计算机来检查其表面的着色度,在收集到其彩色图像以后,对图片进行处理,将以RGB为基础的色彩表达方式转换成HSI,然后计算在全部的着色面积中,合适色相面积在其中占据的比例。
学者李庆、张漫等人在其研究成果中提到了如何提取苹果的颜色特征的方法。
1.3课题主要研究内容
(1)文章介绍了课题研究背景及意义,讨论了国内外计算机图像识别的研究进度与应用范围,并着重分析国内对水果识别分级指标的分类和应用进程。
(2)介绍了通过机器视觉处理可以根据特定颜色的图像进行灰度化的方法。
(3)通过讨论小波去噪、中值滤波以及水果边界提取的方法,对水果图像进行预处理。
利用小波去噪、中值滤波去除图像噪声。
(4)讨论分割水果图像的背景,根据水果识别生产线实际情况的掌握,通过对比几种不同的微分梯度算子边缘检测实验的结果,来进行分析并得到结果。
(5)基于形态学的腐蚀与重构最大化地从背景中分离出目标区域。
(6)通过改进的分水岭算法分割图像,对其进行计数。
2球状水果识别原理
2.1一般灰度化与选择性灰度化
对算法必需从灰度图像入手,因为彩色图像所采集的信息量远大于灰度图形,如果采用彩色图像将耗费大量的时间和平台资源。
一般灰度化不能应用于多种球状水果并给出不同灰度化,这就要求我们将所需的图像选出来,将其他部分隐去。
因此,本论文选用选择性灰度化来对图像进行处理。
对彩色图像R、G、B三个量进行重新运算后得到所对应像素的灰度值就是该灰度化算法核心。
2.2图像增强
2.2.1图像噪声污染
基于机器视觉的水果识别系统是一个复杂多变的系统,图像采集过程中大多可能因为受到干扰而使得采集到的图片含有噪声污染。
若图像中含有噪声污染,则使得图像质量降低。
图像质量降低则会影响到识别处理全部过程及结果输出,甚至如果噪声过大以至于遮盖住原始图像的信息,那么识别结果就会出现错误。
因此图像增强是图像识别之前的必备步骤。
2.2.2图像的预处理
图像预处理就是将每个水果图像分捡出来交给不同的识别模块识别。
它的目的就是威力提高图像地质量。
噪声会对试验中通过摄像头摄取的图像造成很大的干扰,是改变试验结果的重大原因之一,所以,我们必须降噪处理一开始得到的图像。
降噪的常用工具是滤波器,在需要降噪的时候,如果没有特别要求,通常都是使用的滤波器。
2.2.3小波去噪
最近几年,降噪技术中的小波技术快速的发展了起来,此种技术因为其拥有的优秀的时频特点而得到了人们的喜爱。
常见的小波降噪技术有四种,这里使用的是通过变化阈值来进行降噪处理的方法。
其主要过程如下:
在分析的过程中近似和细节被用到的频率比较高,使用前者来表达低频信息,使用后者表达高频嘻嘻。
某些信号里面掺杂了噪音,在信号中的噪音分量大部分集中在其解的细节分量之中。
在分析过程中,不管是分解的成熟多少,还是阈值的大小以及取值方式或者是一些别的影响因素都能够对降噪效果的好坏产生直接的影响。
这里最终选择的降噪方法为小波降噪。
2.2.4中值滤波
中值滤波的降噪方式能够带来极好的降噪效果,而且在降噪的同时还能够保护一些边缘信号使其不变的模糊难以分辨,这也是这种非线性技术所独有的一些优点。
而线性的处理技术虽然不具备这些优点,但是其实现难度更低。
考虑到这里的图像处理主要是为了提取边缘信息,所以本文采用中值滤波的方法将图像去除噪声。
2.3边缘检测
对于灰度图像,能用形态学的膨胀与腐蚀来取得图像的边界。
对边缘的方向的依赖性小是它的优点,缺点则是边界信息不清晰。
而对灰度图像可以用算子滤波取得图像的边缘。
算子的方法包括微分算子,Canny算子和Laplacian算子等方法。
本文用的是微分算子滤波取得边界。
微分滤波器算子应用包括Sobel算子、Prewitt算子和Roberts算子等方法。
在边缘检测中,多用的一种模板是Sobel算子。
对复杂图像多用Prewitt算子或Sobel算子。
与Prewitt算子比较,Sobel算子滤波能降低图像边缘的模糊程度,可以保留较为完整的边界信息,因此Sobel算子的应用会效果更好。
2.4基于形态学的腐蚀与重构
2.4.1对象标记
如果直接利用微分算子处理过的图像进行分水岭算法,这种方式往往得不到正确的结果。
因为结果中大多都会出现分割过度的情况,所以通常都需要对图像进行一系列的处理,其中包括前景对象标记与背景对象标记,只有这样才可以得到较好的效果。
本文用形态学的方法来清理图像。
2.4.2膨胀与腐蚀
样才可以有比较好的效果。
本文使用形态学的方法来清理图像。
2.4.2膨胀与腐蚀
在这门学科里有两种基本操作,第一种是膨胀,也就是将研究对象所接触的背景点与其合并,从而使得其图像发生膨胀,在膨胀的时候还能够对边缘部位的一些凹陷或者是中间的小孔进行填充;第二种是腐蚀,膨胀是填充,到了腐蚀就是消除,两者是一个相反的过程;其他的操作绝大多数都是以此二种操作为基础所推导得出。
结构元素是膨胀和腐蚀操作核心内容。
MATLAB是一种常用的仿真模拟工具,在使用过程中我可以使用strel函数来生成各种结构,而且在生成的过程不受到维度和形状的限制。
在进行膨胀操作的时候可以依赖工具中的Imdilate函数来进行,在进行腐蚀操作的时候可以依赖工具中的Imerode函数来进行,这两种方法功能相反,使用方法相似,通常情况下都是将两者综合起来使用。
2.4.3形态学运算
形态学运算有两种,第一种是开运算,对图像进行处理的时候,先膨胀后腐蚀即为开运算;第二种是闭运算,这种运算可以看做是第一种运算的逆运算,先腐蚀后膨胀即为闭运算。
2.4.4形态学重构
在概念上,形态学重构可以理解成对标记的图像进行重复膨胀,直到标记图像的轮廓适合遮盖图像为止。
在形态学重构中,标记图像地极值点被展开,即为膨胀。
形态学的重建是基于膨胀运算的,它具有下面的几个特性:
①作用对象是两张图,一张是标记图像,另一张是掩膜图像;
②它基于连通性,但不是结构元素;
③直到图像不再变化时,重建才会停止。
2.5分水岭图像分割算法
目前对图像进行分割的数学形态学方法经过多方学者的研究而不断的涌现,其中分水岭算法是较为典型的一种,此种方法具备了许多优点,比方说定位准,计算快等等,这就造成了它被广泛应用于图像分割。
但分水岭算法也是有缺点的,比方它对微弱边缘也会有响应,因而常常会出现过渡分割的情况;还有它的思想虽然简单,但是设计的方法比较困难,算法速率低,因此图像处理需要消耗大量的时间。
3橙子识别算法设计
3.1算法流程图
图3-1球状水果识别—算法流程图
3.2算法设计
3.2.1图像的预处理
第一步,输入一幅JPG格式的彩色图像;第二步,把彩色图像分别用一般灰度化与选择性灰度化两种处理方法,处理后获得两幅灰度图;第三步,分别对两幅灰度图做小波去噪、中值滤波处理,获得两幅经过图像预处理操作后的图像。
3.2.2特征的提取
经过图像预处理的过程后,因为一般灰度图保留较多的图形边缘细节,所以算法应该从一般灰度图入手。
对它进行目标对象的边缘提取;接下来把提取到的边缘和预处理后的选择性灰度化图像叠加在一起,得到目标边缘增强的灰度图;最后将粘连的图像通过基于形态学的腐蚀膨胀作用与图像重建的计算进一步分离,把图像分割需要的目标区域特征提取出来。
3.2.3图像的分割
本文用分水岭算法对图像进行分割,使用该算法需要先将前景背景标记下来。
标记以后的前景背景存在某些干扰,干扰结果的因素主要集中在孤立的像素与少量空洞,因此,我们需要把这些干扰因素清理掉。
最后,使用分水岭算法获得分割结果和计数结果。
4.1灰度化
首先,将MATLAB程序初始化。
clc;clearall;closeall;
然后读取位于F盘的彩色图像4.bmp,并将它存入rgb。
rgb=imread('F:
\picture\4.bmp');
把rgb变成双精度序列并存入I1,可以提高处理精度。
I1=im2double(rgb);
对彩色图像做一般灰度化处理。
R=rgb(:
:
1);
G=rgb(:
:
2);
B=rgb(:
:
3);
gray=G-R;
I2=gray;
选择性灰度化处理彩色图像。
首先将rgb中的R\G\B分量通过简单赋值语句,分别存入r、g、b三个变量。
r=double(rgb(:
:
1));
g=double(rgb(:
:
2));
b=double(rgb(:
:
3));
可以设定提取分量与梯度分量
sr=255;sg=145;sb=15;k=255;
选择性灰度化程序设计能获取彩色图像R分量的映射值o_r(i,j);
fori=1:
size(r,1)
forj=1:
size(r,2)
ifr(i,j) o_r(i,j)=(-k*r(i,j)/sr)+255; else o_r(i,j)=k*r(i,j)/(255-sr)+255; end end end 用上述一样的方法获得彩色图像中像素点G、像素点B分量的映射值o_g(i,j)、o_b(i,j)。 最后混合RGB三个映射值并存入I5,I5即是选择性灰度化图像。 fori=1: size(rgb,1) forj=1: size(rgb,2) I5(i,j)=uint8((o_r(i,j)+o_g(i,j)+o_b(i,j))/3);%混合RGB三通道 End End 图4-1图像提取分量的对比 由图4-1中红绿蓝这三种分量的提取结果能使橙子应该表现出来的绿色分量与蓝色分量显现出来,选择性灰度化使它最大化地凸显,但对于红色分量,选择性灰度化将它屏蔽掉了。 图4-2一般灰度化和选择性灰度化之间的对比图 根据图4-2的现象,对原图做选择性灰度化处理可以突出检测主体,显得快速有效。 4.2图像的预处理 按照需要的条件对图像进行适当的变换,用来突出某些有用的信息,减弱或去除无用的信息,这是信息图像预处理的主要工作。 本文根据小波去噪与中值滤波的特点,把它们结合起来使用。 优点是不仅可以去噪,还可以尽量保留细节。 对一般灰度图像I2,进行小波去噪和中值滤波: [thr,sorh,keepapp]=ddencmp('den','wv',I2); I3=wdencmp('gbl',I2,'sym4',2,thr,sorh,keepapp); I4=medfilt2(I3,[55]); 图4-3一般灰度图-降噪滤波前后 对选择性灰度图通过小波去噪和中值滤波的方法,得到的效果如图4-4所示。 图4-4选择性灰度化-降噪滤波前后 4.3边缘识别和增强 我们通过以上两个步骤,获取了都经过降噪、滤波处理过的一般灰度图和选择性灰度图两幅图像。 选择性灰度图在特征提取时,使得边缘有所损失,这时就需要增强边缘,便于后面的图像分割能准确完成。 但是试验中发现,和选择性灰度图像相比,一般灰度图它保留的原始图像边缘有益于边缘增强,如图4-5。 因此,本文把一般灰度图提取到的边缘信息和选择性灰度图叠加在一起,用以实现选择性灰度图的边缘增强。 MATLAB实现方法如下: hy=fspecial('sobel'); hx=hy'; Iy=imfilter(double(I4),hy,'replicate'); Ix=imfilter(double(I4),hx,'replicate'); I9=-sqrt(Ix.^2+Iy.^2); 图4-5sobel算子边缘提取的结果对比 最后把从一般灰度图提取到的边缘信息与选择性灰度图的叠加在一起,来完成图像的增强。 I=imadd(I8,I9); 图4-6图像边缘增强后的效果 4.4基于形态学图像的重建 4.4.1开运算和开重建运算 前文中已经讲过开运算和闭运算这两种相反的过程。 这两种运算的共同特征是都能够消除大小不足结构元素的一些图像中的细节部分,而且还能够确保在全局的角度不会发生失真现象。 开运算的作用机理是过滤较小的突刺,能够将不同的结构元素分离开来,而闭运算的作用机理是填充,对不同结构元素之间的空隙进行填充补齐,从而将其连接起来。 开操作是先做腐蚀后做膨胀,基于开的重建则是腐蚀后进行形态学的重建。 Se=strel('disk',15); Io=imopen(I,se); Ie=imerode(I,se); Iobr=imreconstruct(Ie,I); Ioc=imclose(Io,se); Iobrd=imdilate(Iobr,se); Iobrcbr=imreconstruct(imcomplement(Iobrd),imcomplement(Iobr)); Iobrcbr=imcomplement(Iobrcr); figure; subplot(1,2,1);imshow(I,[]);title('叠加后的图像'); subplot(1,2,2);imshow(Iobrcbr,[]);title('基于重建的开闭操作'); 图4-7图像的膨胀,腐蚀与开闭操作前后的对比 根据图4-7,通过基于重建开闭操作和标准开闭操作的比较可以看到,在保持全局形状不发生变化的前提下,若要将其中的一些小污点移除,那么相对来说基于重建进行开闭运算会显得效果更好。 4.5基于分水岭的图像分割 4.5.1前景对象、背景对象标记 这里能够用来得到前景标记的办法有不少,而得到的标记都是前景对象内部连接的斑点像素。 同时这些操作又将会在每个对象的内部创建出单位极大值,使它可以使用imregionalmax来定位,图4-13所示。 fgm=imregionalmax(Iobrcbr); subplot(1,3,1);imshow(I,[]);title('叠加后的图像'); subplot(1,3,2);imshow(Iobrcbr,[]);title('基于重建的开闭操作'); subplot(1,3,3);imshow(fgm,[]);title('前景标记图像'); 图4-8前景、背景对象标记 4.5.2闭塞处、阴影对象优化 通过上图可以看出,很多处于闭塞状态下的对象以及阴影对象都没有得到标记,这种情况的出现表明了这些对象在处理过程中难以被合理的分离开来。 而且,部分对象的前景标记标记在了边缘位置,这种情况表明被标记对象的边缘需要被清理。 在MATLAB中,我们可以选择使用前文中提到的imclose和imerode两个函数来进行相应的操作,如图4-14所示。 se2=strel(ones(4,4)); fgm2=imclose(fgm,se2); fgm3=imerode(fgm2,se2); figure; subplot(1,3,1);imshow(Iobrcbr);title('基于重建的开闭操作'); subplot(1,3,2);imshow(fgm);title('前景标记'); subplot(1,3,3);imshow(fgm3);title('前景背景标记'); 图4-9前景背景标记的处理 4.5.3移除孤立像素、填洞处理 在处理进行的时候可能会遗留下位置比较偏的像素点,这个时候需要对其进行移除操作。 这里我们可以使用bwareaopen函数来进行移除操作。 因为fgm5=bwareaopen(fgm4,P)能将少于P像素值的连通块,从二值图像中移除,获得另外一个二值图像fgm5。 除此之外,填洞处理还可以用来实现imfill命令。 fgm4=imfill(fgm3,'holes'); fgm5=bwareaopen(fgm4,500); figure; subplot(1,3,1);imshow(fgm3);title('前景背景标记'); subplot(1,3,2);imshow(fgm4);title('填洞处理'); subplot(1,3,3);imshow(fgm5);title('去除较小区域'); 图4-10移除孤立像素、填洞处理 4.5.4分水岭算法与计数 背景像素是在黑色区域,不过在理想情形下,就不必要求背景标记过接近要分割的对象边缘。 可通过计算骨架影响范围去细化背景,或fgm5的前景。 这个可通过计算fgm5的距离变换中的分水岭变换去实现,再寻找结果的分水岭脊线(DL==0)。 D=bwdist(fgm5)计算二值图像fgm5的欧几里得矩阵。 对fgm5的每一个像素,距离变换都可指定像素和最近的fgm5非零像素的距离。 bwdist默认为使用欧几里地距离公式。 fgm5可用任意维数,D与fgm5则有同样的大小。 D=bwdist(fgm5); DL=watershed(D); bgm=DL==0; figure; subplot(1,3,1);imshow(Iobrcbr);title('基于重建的开闭操作'); subplot(1,3,2);imshow(label2rgb(DL));title('分水岭变换的示意图'); subplot(1,3,3);imshow(bgm);title('分水岭变换的脊线图'); 图4-11分水岭变换示意与脊线图 最后,通过max函数可直接计算出图中分割区域数目,即为图中橙子的个数,算法就完成了。 Num=max(max(DL)); 图4-12计数结果 根据图4-12显示,当算法返回Num数值为7时,与实际相符,则算法可以实现。 5总结 这就是基于MATLAB橙子图像识别算法的全部过程,图像经过选择性灰度的提取、边缘检测、降噪和滤波等等预处理,使用基于形态学的图像开闭与重建操作,来实现图像中每个水果个体之间的最大分离,为后面的前景背景对象的标记起到启下的作用,最后再根据分水岭图像分割算法得到最优的图形分割最终完成了图像中水果个数的统计。 算法虽然是以橙子的图像为特例分析的,但是该算法也充分利用MATLAB平台所提供的函数,它具有便捷性和可扩展性。 对于大部分球状水果,都可以通过修改灰度化特征提取的特征参数,去确定所要分析水果的颜色特征;通过修改该小波去噪和中值滤波的参数,去优化特定硬件环境下产生的图像预处理算法,还可以通过修改基于形态学的图像开闭操作的se参数,去实现对不同大小、不同形状特征水果的个体分离。 但是因为该算法设计时间是有限,所以有许多考虑不周的地方。 本课题选用的方法可以扩展到图像识别的应用领域,并且为了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 图像 分析 橙子 识别 计数 研究
![提示](https://static.bdocx.com/images/bang_tan.gif)