基于MATLAB的橙子识别与计数研究

上传人:y****3 文档编号:12835210 上传时间:2020-05-30 格式:DOC 页数:24 大小:775KB
返回 下载 相关 举报
基于MATLAB的橙子识别与计数研究_第1页
第1页 / 共24页
基于MATLAB的橙子识别与计数研究_第2页
第2页 / 共24页
基于MATLAB的橙子识别与计数研究_第3页
第3页 / 共24页
点击查看更多>>
资源描述
.本科生毕业论文(设计)题 目: 基于MATLAB的橙子识别与计数研究 姓 名: 孙娜娇 学 院: 工 学 院 专 业: 电子信息科学与技术 班 级: 信息123班 学 号: 32312308 指导教师: 邹修国 职称: 副教授 2016 年 5月 28日南京农业大学教务处制目 录摘要1关键词1Abstract.1Key words1引言21论文概述21.1 课题研究目的及意义21.2 国内外研究概况21.2.1 国外研究概况21.2.2 国内研究概况31.3 主要研究内容32 系统整体设计方案42.1 系统整体概况42.2 主要技术43 系统硬件设计53.1 硬件模块选型与设计53.1.1 基于S3C2410的控制器53.1.2 USB的应用53.1.3 无线路由器73.1.4 系统电源供电模块的设计73.1.5 五自由度机械臂模块83.1.6 舵机云台103.1.7 模拟机械臂模块103.2 硬件系统整体设计124 系统软件架构与控制模块间通信134.1 智能排障机器人控制系统软件设计134.1.1 编写leds指示灯驱动程序134.1.2 编写GPIO口驱动程序144.1.3 编写机械臂驱动程序144.1.4 系统控制模块间通信144.2 安卓手机应用软件设计154.2.1 软件功能的设计154.2.2 Socket与图像显示165 系统测试175.1 系统测试平台的搭建175.2 系统测试步骤185.3 测试结果演示206 总结与展望226.1 总结226.2 展望22致谢23参考文献24附录125附录226.基于MATLAB的橙子识别和计数研究电子信息科学与技术专业学生 孙娜娇指导教师 邹修国摘要:随着计算机技术的快速发展,当代农业的发展也越来越迅速。目前,国内外的人工水果识别鉴定能力均不能满足实际生产需求。因而,人们开始不断探索利用计算机自动识别水果的原理和方法,水果识别也因此成为国内外研究的热点。与传统计算机图像识别技术研究不同的是本课题以近年来热度较高的MATLAB作为研究平台,针对于球状水果,提出了以图像特征灰度化为切入点,用小波去噪和中值滤波相结合的办法对图像进行预处理,以Sobel算子对图像作边缘检测,通过基于形态学的图像特征抽取与分析,最终用分水岭图像分割方法实现目标检测与计数。该课题充分利用了MATLAB平台在图像处理方面的优势,经过优化和调试,可以快速并且准确地分析出结果。关键词:MATLAB;形态学;分水岭算法Globular fruits identify and count based on MATLABStudent majoring in Electronic and Information Science and Technology YangYiTutor Zou XiuguoAbstract:With the rapid development of computer technology, modern agriculture gradually moving toward digital, precise and intelligent. Currently, artificial fruits recognition capabilities at home and abroad to identify the actual production can not meet demand. Thus, people began to explore the principles and methods of using the computer automatically recognizes fruit, fruit recognition has also become a hot research. With traditional computer image recognition technology is the subject of various studies in recent years to a high heat of MATLAB as a research platform for in globular fruit, put forward a grayscale image features as the starting point, using wavelet de-noising and median filtering combined approach of image preprocessing, in order to make the image Sobel operator edge detection, image-based morphological feature extraction and analysis, and ultimately with the watershed image segmentation methods to achieve target detection and counting. The subject MATLAB platform leverages the advantages of image processing, optimized and the debugger, you can quickly and accurately analyze the results.Key words:MATLAB;Morphology;Watershed algorithm引言 图像识别是数字图像处理中的一项关键技术,在图像工程中占据着重要的位置。从颜色上图像分为彩色图像、灰度图像和黑白图像等。因此对数字图像的分析可以分为彩色图像分析和灰度图像分析。彩色图像包含大量信息有助于更准确地分析图像,但也正因为自身信息量较大所以对于机器性能要求较高并且不利于分析速度。灰度图像信息量小,但是如果只是简单地将彩色图像灰度化,那么可能将丢失大量有用信息,不利于图像分析的准确性。本文提出一种图像识别思路,它包含对感兴趣区域图像灰度化算法,对特定环境下的图像通过特定算法进行降噪及滤波,运用形态学原理的图像腐蚀、膨胀、重构,最后通过分水岭分割算法的改进算法实现水果个数统计。所以本课题对球状水果识别和计数研究具有重大意义。1论文概述1.1课题研究目的和意义我国是果树大国,栽培历史悠久,资源丰富。水果生产作为一项新兴产业,在农业和农村经济发展中的地位已经十分重要,在很多地区己成为农村经济的支柱产业。纵观世界果园科技的发展,二十一世纪我国的果园也将从传统作业转化到以现代科学技术为基础的现代“集约持续果园”上来。果园的发展将全面地体现生产、经济、技术、社会和生态的可持续性。在水果分级方面,我国相继引进和开发了按大小和重量分级的分级设备,近几年国内也出现了基于机器视觉技术的水果分级设备。但是,进口设备价格昂贵,一般水果生产企业难以负担。而国产设备由于技术投入不够,与国外先进设备差距比较大。随着机器视觉技术的发展,国外也出现了将机器视觉运用在水果分级系统上的相关研究,使得国外的水果分级分类系统的性能进一步提高,同时也进一步拉大了我国与国外在水果生产自动化的技术差距。由于我国的现状,如果不在水果产后处理上下功夫,我国的水果出口形势还会非常严峻,这就要求国内的研究者在水果分级技术进一步钻研,使我国的分级技术再上一个新台阶。将机器视觉(也称计算机视觉,图像处理)技术引入果园自动化,是解决该问题的有效途径之一。同时,基于机器视觉的水果自动化系统在水果流通过程也可提高自动化程度、降低劳动强度、增加收益提供快速、准确的检测手段。1.2水果识别研究现状上世纪80年代后期,由于计算机广泛生产,计算技术也广泛发展,针对于计算机视觉在各个领域的的研究成果也日新月异。国外的很多学者在基于计算机视觉技术而提高水果的分级速度方面进行了研究,在理论和应用上有了较大进展,并取得了很好的经济效益。而我国的水果自动识别技术研究则较晚,仅始于90年代,而且当时从事水果自动分级系统研究的科研院还很少,研究成果也不是很显著,但那却为我国在水果分级方面的研究奠定了基础。按大小分类是水果识别的一个重要指标。应义斌研究了利用机器视觉技术精确检测水果尺寸方法1,章文英、应义斌等针对苹果的外形特征,应用苹果的最小外接矩形(MER)的尺寸表示横径和纵径,取得了较为理想的结果2,高华、王雅琴用傅立叶半径描述的方法测量水果的大小3,冯斌、汪懋华以苹果的自然对称形态特征为依据,水果大小检测绝对测量误差最大为3mm4。果实形状是水果品质检测与分级的一个重要指标5,宁纪锋、何东健等利用图像形态学方法测量果实的形状,准确率很高,最高能达到91.4%6。赵静、何东健提出主要通过半径这个指标,利用人工神经网络对水果的形状进行识别和分级7。应义斌、景寒松等提出采用傅立叶变换与傅立叶反变换对来描述黄花梨的形状8。颜色也是水果检测的重要指标。冯斌、汪懋华通过对不同颜色等级的水果进行分析,进而对水果进行分级9。何东健、杨青等通过机器视觉自动检测苹果表面着色度,获取彩色图像,并将RGB值转换成HSI值,用合适色相值累计着色面积百分比进行颜色分级10。李庆中、张漫等确定了苹果颜色特征的提取方法,利用遗传算法实现了多层前向神经网络识别器的学习设计11。在国外,机器视觉是70年代开始兴起的,它主要应用于卫星遥感和医学方面。它不仅是人眼的延伸,而且具有人脑的部分智能识别功能,具有速度快、信息量大、功能多、检测精度和效率高等优点。随着计算机、控制理论、模式识别、人工智能等技术的发展,机器视觉已广泛应用于军事技术、科学研究、医疗卫生、工农业生产、信息技术等领域。国外在利用机器视觉技术进行水果分类和计数已经取得较大的进展,国内尚处于探索阶段。目前,国外已研制出了商用水果自动化系统,并在生产上得到了应用。1.3课题主要研究内容(1)本文首先介绍了课题的研究背景及意义,对国内外的水果识别方面的研究应用现状进行了讨论,并重点对国内外水果分级技术研究现状进行了分析。(2)介绍了一些机器视觉领域基础的方法,提出了针对特定颜色的图像灰度化方法。(3)讨论了水果图像的预处理过程:小波去噪、中值滤波以及水果边界提取。利用小波去噪和中值滤波相结合的办法去除图像噪声。(4)讨论了水果图像的背景分割,针对水果识别生产线的实际情况,对几种不同的微分梯度算子进行边缘检测实验并对结果进行了对比分析。(5)基于形态学的腐蚀与重构最大化地从背景中分离出目标区域。(6)通过改进的分水岭算法分割图像并计数。1.4研究方法与手段1.4.1运行环境运行环境主要介绍了硬件环境和软件环境。(1) 硬件环境 处理器:英特尔至强E3 内存:8G 硬盘空间:1TB 显卡:英伟达GTX770(2) 软件环境操作系统:Window 98/ME/2000/XP/win7/win8/win8.11.4.2开发环境开发环境主要介绍了本系统采用的操作系统、开发语言。(1) 操作系统:Windows 8.1(2) 开发语言:C(3) 开发环境:MATLAB 2013a2球状水果识别原理2.1一般灰度化与选择性灰度化彩色图像的信息量较灰度图大,如果直接将彩色图像进行运算将耗费大量的硬件资源,不利于算法高效运行,所以算法必需从灰度图像入手。传统的图像灰度化的计算方式不能针对不同球状水果给出不同的灰度化效果,我们需要将我们最感兴趣的部分提取出来而将对图像分割并没有太大帮助的背景将其隐去。这就是本论文所用的选择性灰度化的方法。该灰度化算法的核心就是对彩色图像R、G、B三个量进行重新运算后得到所对应像素的灰度值。 2.2图像增强2.2.1图像噪声污染基于机器视觉的水果识别系统是一个复杂系统,图像采集过程中很有可能受到干扰而使采集到的图片含有噪声污染。若图像含有噪声污染,则图像质量的质量就会降低。图像质量的降低会影响到识别处理全过程及结果输出,甚至如果噪声太大以至于掩盖原始图像的信息,那么就会出现错误的识别结果。所以对图像进行图像增强是图像识别之前的必备步骤。2.2.2图像预处理图像的预处理,即是将每个水果图像分捡出来交给识别模块识别。其目的就是提高图像质量。实验中通过摄像头得到的图片,噪声是对图像干扰的重大原因,所以,我们必须对初步得到的图像进行降噪处理。一般降噪的方法就是通过滤波器来降噪。滤波包括空域滤波和频域滤波。空域滤波是降噪的常用方法。空域滤波分为线性空域滤波和非线性空域滤波。线性空域滤波包括线性平均滤波,非线性空域滤波包括中值滤波,自适应维纳滤波,顺序统计滤波。频域滤波包括低通滤波,高通滤波,带通滤波,同态滤波和小波去噪。2.2.3小波去噪在图像去噪领域,小波变换以其自身良好的时频局部化特征,开辟了用非线性的方法去躁的先河。小波去噪是小波变换较为成功的一类应用。目前小波去躁的方法大概可以分为三类:(1) 基于小波变换模极大值原理;(2) 基于小波变换系数相关性;(3) 基于小波阈值的去噪方法。本论文运用的是小波阈值去噪方法。其根据图像与噪声在各个尺度上的小波系数具有不同特征的特点,按照一定的阈值处理小波系数,小雨预定阈值的小波系数认为是由噪声引起的,直接设置为零,大于预定阈值的小波系数,认为主要是由图像引起的,直接保留下来(硬阈值法)或将其进行收缩(软阈值法),对得到的估计小波系数进行小波重构就可以重建原始图像。其步骤可分为三步:去噪图像小波逆变换估计小波系数阈值量化小波分解系数小波变换输入图 像 图一:小波去噪过程利用小波变换在去除噪声时,可提取并保存对视觉起主要作用的边缘信息。由于图像预处理的目的是获得边缘信息,因此本论文采用小波去噪的方法去除噪声。2.2.4中值滤波中值滤波法是一种非线性平滑技术。中值滤波可以去除图像中的椒盐噪声,平滑效果优良,在抑制噪声的同时还能够保持图像的边缘清晰。由于图像处理的目的是提取边缘信息,所以本论文采用了中值滤波的方法去除噪声。2.3边缘检测 对于灰度图像可以通过形态学的膨胀和腐蚀来获取图像的边界其方法的优点是对边缘的方向的依赖性比较小,缺点是边界信息不清晰;对于灰度图像可以采用算子滤波获得图像的边缘。算子包括微分算子,Canny算子和LOG算子。本文采用的微分算子滤波获得边界。比较有名的微分滤波器算子包括Sobel算子、Prewitt算子和Roberts算子等等。在边缘检测中,常用的一种模板是Sobel算子。对于复杂图像一般用Prewitt算子或Sobel算子。与Prewitt算子相比,Sobel算子滤波能够降低图像的边缘模糊程度,对边界信息保留的较为完整,因此效果更好。2.4基于形态学的腐蚀与重构2.4.1对象标记直接利用微分算子处理过的图像进行分水岭算法往往得不到正确的结果,因为结果中一般都会存在分割过度的情况。因此通常需要图像进行一系列的处理包括前景对象标记和背景对象标记,这样才可以有比较好的效果。本文使用形态学的方法来清理图像。2.4.2膨胀与腐蚀膨胀和腐蚀是图像形态学的基本操作。图像形态学的很多操作都是以膨胀和腐蚀为基础推导的算法。膨胀是将与物体接触的所有背景点合并到该物体上,使边界向外部扩张,通过膨胀可以填充图像中的小孔及在图像边缘处的小凹陷部分。腐蚀是一种消除边界点。利用腐蚀可以消除比目标物体小很多的物体。膨胀和腐蚀操作的核心内容是结构元素。MATLAB 图像处理工具箱中的strel函数可以生成任意维数和形状的结构元素。Strel 函数支持生成一般的形状,例如线型、菱形、圆盘、球形、矩形等结构元素。对图像进行膨胀可以使用MATLAB图像处理工具箱中的Imdilate函数,用Imerode函数来对图像进行腐蚀,Imerode函数与Imdilate函数的用法类似。在对图像进行处理时一般是将膨胀和腐蚀结合起来用。2.4.3形态学开运算和闭运算 形态学的开运算就是对一幅图像先进行膨胀操作,然后再进行腐蚀的操作。而闭运算恰恰相反,闭运算是先对一幅图像进行腐蚀,然后再对图像进行膨胀操作。2.4.4形态学重构形态学重构在概念上可以理解为对标记图像进行重复膨胀,直到标记图像的轮廓适合掩膜图像为止。在形态学重构中,标记图像的极值点被展开,即膨胀2。形态学的重建是以膨胀运算为基础的,需要指出的是它有下面的特性:重建的作用对象是两幅图,一幅是标记图像,一副是掩膜图像;重建基于连通性,而不是结构元素;重建直到图像不再变化的时候停止。2.5分水岭图像分割算法分水岭算法是一种已经发展起来的数学形态学图像分割方法。这种方法具有计算速度较快、处理结果图像封闭、定位精确等优良特点,因此被广泛应用于图像分割。但分水岭算法也有缺点,比如它对对微弱边缘也有响应,因此常常会出现过渡分割的现象;比如其思想虽然简单,但是设计方法比较困难,算法的速度较慢,因此图像处理时耗时较长。3橙子识别算法设计3.1算法流程图图3-1 球状水果识别算法流程图3.2算法设计3.2.1图像预处理首先,载入一张JPG格式的彩色图像。将彩色图像分别做一般灰度化与选择性灰度化处理得到两张灰度图。分别对两张灰度图做小波去噪与中值滤波处理,得到两张经过图像预处理操作后的图像。3.2.2特征提取经过图像预处理操作后,由于一般灰度图保留较多图形边缘细节,故算法应该从一般灰度图入手对其进行目标对象的边缘提取工作。接着将提取到的边缘与经过预处理的选择性灰度化图像叠加得到目标边缘增强的灰度图。最后通过基于形态学的腐蚀膨胀操作与图像重建计算将粘连的图像进一步分离,提取出图像分割所需的目标区域特征。3.2.3图像分割本文利用分水岭算法对图像进行分割,应用该算法需要先标记前景背景。标记以后的前景背景存在有一些干扰结果的因素主要是孤立的像素与少量空洞,所以我们需要对这些干扰因素进行清理。最后,应用分水岭算法得出分割结果与计数结果。4橙子识别算法MATLAB实现4.1灰度化首先,初始化MATLAB程序。clc; clear all; close all;接着读取位于F盘的彩色图像4.bmp并存入rgb。 rgb = imread(F:picture4.bmp);为了提高处理精度,将rgb变成双精度序列并存入I1。I1=im2double(rgb); 对彩色图像作一般灰度化处理。 R=rgb(:,:,1); G=rgb(:,:,2); B=rgb(:,:,3); gray=G-R; I2=gray; 对彩色图像进行选择性灰度化处理。首先将rgb中的RGB分量通过简单赋值语句分别存入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);for i = 1:size(r, 1)for j = 1:size(r, 2)if r(i,j) sro_r(i,j) = (-k * r(i,j)/sr)+255;elseo_r(i,j) = k *r(i,j)/(255-sr)+255;endendend用同样的方法获得彩色图像像素点G、B分量的映射值o_g(i,j)、o_b(i,j)。最后混合RGB三个映射值并存入I5,I5即是选择性灰度化图像。for i = 1:size(rgb, 1)for j = 1:size(rgb, 2)I5(i,j) = uint8(o_r(i,j) + o_g(i,j) + o_b(i,j) / 3);%混合RGB三通道EndEnd 图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,5 5);图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-5 sobel算子边缘提取结果最后将从一般灰度图提取边缘信息与选择性灰度图叠加完成图像增强。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(基于重建的开闭操作); 图47 图像膨胀,腐蚀,开闭操作前后对比 参考图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闭塞处和阴影对象优化观察图4-8注意到大多闭塞处和阴影对象没有被标记,这就意味着这些对象在结果中将不会得到合理的分割。而且,一些对象的前景标记会一直到对象的边缘。这就意味着应该清理标记斑点的边缘,然后收缩它们。可以通过闭函数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参数来实现对不同大小和不同形状特征的水果的个体分离。但是由于该算法设计时间有限,因此有许多考虑不周的地方。本课题方法可以扩展图像识别的应用领域,并且为水果识别提供一个可靠的辅助,省去繁琐的人工采样和识别,提高劳动效率。将来通过算法的优化和改进,提高精度获取更多的水果信息,能够更好的满足水果流通的需求。致谢本毕业设计的研究及学位论文的撰写都是在邹修国老师的悉心指导下完成的。他严谨的科学态度和兢兢业业、诲人不倦的治学精神,精益求精的工作作风,深深地感染和激励着我。在整个毕业设计工作中,邹修国老师始终给予我细心的指导和不懈的支持,对我的毕业设计帮助颇多。他宽以待人的高尚品格,为我树立了学习的榜样,并将使我受益终生。邹修国老师不仅在学业上给我以耐心指导,同时还在思想、生活上给我以无微不至的关怀。在此,谨向邹修国老师致以最崇高的敬意和最诚挚的感谢。其次,非常感谢帮助过我的同学,当我面对困难,经历坎坷的时候给予我无私的鼓励和帮助,在此致以诚挚的谢意。最后,感谢学校提供良好的学习平台,感谢母校每一位老师对我四年学习、生活的支持和鼓励,谢谢你们的教诲。路慢慢其修远兮,吾将上下而求索。我愿在未来的学习和工作过程中,以更丰厚的成果来答谢曾经关心、帮助和支持我的所有领导、老师、同学。参考文献 1应义斌.水果尺寸和面积的机器视觉检测方法研究J.浙江大学学报,2000,26(3):229-232.2章文英,应义斌.苹果图像的预处理及尺寸检测J.金华职业技术学院学报,2001,(1):23-25.3高华,王雅琴.基于计算机视觉的农产品形状分级研究J.计算机工程与应用,2004,(14):227-229.4冯斌,汪懋华.基于计算机视觉的水果大小检测方法J.计算机工程与应用,2003,(1):73-75.5叶昱程,应义斌.水果品质检测与分级技术J.农机化研究,2003(1):58-59.6宁纪锋,何东健等.基于图像形态学的球形果实品质检测研究J.农机化研究,2001,(3):28-29.7赵静,何东健.果实形状的计算机识别方法研究J.农业工程学报,2001,11(2):165-167.8应义斌,景寒松等.黄花梨果形的机器视觉识别方法研究J.农业工程学报,1999,15(1):192-196.9冯斌,汪懋华.基于颜色分形的水果计算机视觉分级技术J.农业工程学报,2002,18(2):141-144.10何东健,杨青等.果实表面颜色计算机视觉分级技术研究J.农业工程学报,1998,14(3):202-205.11李庆中,张漫等.基于遗传神经网络的苹果颜色实时分级方法J.中国图像图形学报,2000,5(9):779-784.12黎萍,朱军燕,刘燕德等.机器视觉在农产品检测与分级中的应用与展望J.江西农业大学学报,2005,27(5):796-800.13应义斌,饶秀勤,蒋亦元等.机器视觉技术在农产品品质自动识别中的应用J.农业工程学报,2000,16(l):103-108.14王巧华,文友先.农产品分级处理新技术J.农机化研究,2003,(l):68-69.15黄秀玲,郑加强,赵茂程.水果分级支撑技术的研究进展J南京林业大学学报,2007,31(2):123-126.16高华,周林.计算机视觉及模式识别技术在农业领域的应用田J.山东农业大学学报,2003,34(4):590-593.17阮沈勇,王永利,桑群芳.Matlab6.5辅助图像处理M.北京:北京电子工业出版社,2004.18孙兆林.Matlab6x图像处理M.北京清华大学出版社,2002.19章毓晋,罗惠韬.基于评价知识的图像分割算法优选系统J.高技术通讯,1998(4):21-24.20章毓晋.图像分割评价技术分类和比较J.中国图像图形学报,1996,1(2):151-158.21韩晓军,苗长云,王亚青.基于标准图像文件格式的数字图像处理方法J.辽宁工程技术大学学报(自然科学版),2000,19(4):416-463.22张铁中,周天娟.草莓采摘机器人的研究:I基于BP神经网络的草莓图像分割J.中国农业大学学报,2004,9(4):65-68.23齐龙,马旭,张小超.基于网络的植物病害彩色图像的分割技术J.吉林大学学报,2006,36(2):126-139.24尹建军,毛罕平,王新忠.不同生长状态下多目标番茄图像的自动分割方法J.农业工程学报,2006,22(10):149-153.25雷英杰,张善文,李续武,等.MATLAB遗传算法工具箱及应用M.西安:西安电子科技大学出版社,2005,62-105.26陈纯.计算机图像处理技术与算法M北京:清华大学出版社,2003年.27徐飞等编著.MATLAB应用图像处理M.西安:西安电子科技大学出版社,2004年.28霍宏涛等.数字图像处理M.北京:北京理工大学出版社,2002年.29范立南等编著.图像处理与模式识别M.北京:北京科学出版社,2007年30唐常青.数学形态学方法及其应用.北京:科学出版社,199031罗玲,谢梅,等.基于多尺度形态滤波的分水岭图像分割方法J.计算机辅助与图形学学报,2004,16(2):168-173.32袁晓辉,许东,夏良正,等.基于形态学滤波和分水线算法的目标图像分割J.数据采集与处理,2003,18(4):455-459.33卢官明.区域生长型分水岭算法及其在图像序列分割中的应用J.南京邮电学院学报(自然科学版),2000,3(20):51-54.附录1.完整算法与注释:clc; clear all; close all; %初始化rgb = imread(F:picture4.bmp); %读取图像I1=im2double(rgb); %将彩图序列变成双精度 %*1-1 一般灰度化*R=rgb(:,:,1); G=rgb(:,:,2); B=rgb(:,:,3); gray=G-R;I2=gray;%*1-2 选择性灰度化*r = double(rgb(:,:,1); %载入RGB分量g = double(rgb(:,:,2);b = double(rgb(:,:,3);sr=255; %设定提取分量sg=145;sb=15;k=255; %设定转换梯度for i = 1:size(r, 1) %转换R色彩for j = 1:size(r, 2)if r(i,j) sro_r(i,j) = (-k * r(i,j)/sr)+255;elseo_r(i,j) = k *r(i,j)/(255-sr)+255;endendendfor i = 1:size(g, 1) %转换G色彩for j = 1:size(g, 2)if r(i,j) sgo_g(i,j) = (-k * r(i,j)/sg)+255;elseo_g(i,j) = k *r(i,j)/(255-sg)+255;endendendfor i = 1:size(b, 1) %转换B色彩for j = 1:size(b, 2)if r(i,j) sbo_b(i,j) = (-k * r(i,j)/sb)+255;elseo_b(i,j) = k *r(i,j)/(255-sb)+255;endendendfor i = 1:size(rgb, 1) for j = 1:size(rgb, 2)I5(i,j) = uint8(o_r(i,j) + o_g(i,j) + o_b(i,j) / 3); %混合RGB三通道得到选择性灰度图endend%=结果展示=figure;subplot(2, 2, 1); imshow(o_r,); title(红色分量提取结果);subplot(2, 2, 2); imshow(o_g,); title(绿色分量提取结果);subplot(2, 2, 3); imshow(o_b,); title(蓝色分量提取结果);subplot(2, 2, 4); imshow(I5,); title(混合RGB通结果);figure;subplot(1, 3, 1); imshow(I1);title(原图);subplot(1, 3, 2); imshow(I2);title(一般灰度图);subplot(1, 3, 3); imshow(I5);title(选择性灰度图);%*2-1 预处理一般灰度化图像*thr, sorh, keepapp=ddencmp(den,wv,I2); %设定除噪参数 I3=wdencmp(gbl,I2,sym4,2,thr,sorh,keepapp); %小波除噪 I4=medfilt2(I3,5 5); % 中值滤波 %=结果展示=figure;subplot(1, 2, 1); imshow(I2);title(一般灰度图);subplot(1, 2, 2); imshow(I3);title(降噪及滤波后); %*2-2 预处理选择性灰度化图像*I6=im2double(I5);%转换I6格式为doublethr, sorh, keepapp=ddencmp(den,wv,I6); %设定除噪参数 I7=wdencmp(gbl,I6,sym4,2,thr,sorh,keepapp); %小波除噪 I8=medfilt2(I7,5 5); % 中值滤波%=结果展示=figure;subplot(1, 2, 1); imshow(I5); title(选择性灰度图);subplot(1, 2, 2); imshow(I8); title(降噪及滤波后);%*不做色彩提取的灰度图进行边缘检测*hy = fspecial(sobel); %使用Sobel边缘算子对图像进行水平和垂直方向的滤波,然后求取模值hx = hy;Iy = imfilter(double(I4), hy, replicate);Ix = imfilter(double(I4), hx, replicate);I9 = -sqrt(Ix.2 + Iy.2);figure;subplot(2, 2, 1); imshow(I4,); title(预处理的一般灰度图);subplot(2, 2, 2); imshow(Iy,); title(Y边缘检测图像);subplot(2, 2, 3); imshow(Ix,); title(X边缘检测图像);subplot(2, 2, 4); imshow(I9,); title(边缘检测图像);%*混合边缘图像与色彩提取图像*I=imadd(I8,I9);figure;subplot(1, 3, 1); imshow(I9,); title(边缘检测图像);subplot(1, 3, 2); imshow(I8,); title(选择性灰度图像);subplot(1, 3, 3); imshow(I,); title(叠加后的图像); %*膨胀及腐蚀*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);%imcomplement对图像进行求反操作Iobrcbr = imcomplement(Iobrcbr);figure;subplot(1, 2, 1); imshow(I,); title(叠加后的图像);subplot(1, 2, 2); imshow(Iobrcbr,); title(基于重建的开闭操作); %*前景标记*fgm = imregionalmax(Iobrcbr); %标记前景%=结果展示=figure;subplot(1, 3, 1); imshow(I,); title(叠加后的图像);subplot(1, 3, 2); imshow(Iobrcbr,); title(基于重建的开闭操作);subplot(1, 3, 3); imshow(fgm,); title(前景标记图像); %*前景背景标记处理*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(前景背景标记);%*填洞处理及去除较小区域*fgm4=imfill(fgm3,holes);fgm5= bwareaopen(fgm4, 500); %从二值图像中移除所有少于P像素值的连通块figure;subplot(1, 3, 1); imshow(fgm3); title(前景背景标记);subplot(1, 3, 2); imshow(fgm4); title(填洞处理);subplot(1, 3, 3); imshow(fgm5); title(去除较小区域);%*分水岭及其统计*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(分水岭变换脊线图); Num=max(max(DL) .
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 模板表格


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!