基于数字图像的水果边缘检测方法研究

本文探讨了使用数字图像处理技术进行水果边缘检测的方法,着重研究了基于MATLAB的Sobel、Roberts、Prewitt、Log和Canny等多种边缘检测算子在苹果图像上的应用。实验表明,Canny算子在边缘检测中表现出色,边缘连续性好。此外,文章还介绍了图像预处理、几何操作和灰度处理等步骤,为水果识别提供了一个有效的辅助工具,有助于提升水果分拣的自动化程度和精度。
摘要由CSDN通过智能技术生成

基于数字图像的水果边缘检测方法研究

1绪论

1.1课题研究的背景

我国水果品种繁多,资源丰富。作为一项新兴产业,在农业和农村经济发展中的地位已经十分重要,在很多地区己成为农村经济的支柱产业。纵观 世界水果园科技的发展, 二十一世纪我国的水果园也将从传统作业转化到以现代科学技术为基础的现代“集约持续水果园”上来。水果园的发展将全面地体现生产、经济、技术、社会和生态的可持续性。在水果分级方面,我国相继引进和开发了按大小和重量分级的分级 设备,近几年国内也出现了基于机器视觉技术的水果分级设备。但是,进口设备价格昂 贵,一般水果生产企业难以负担。而国产设备由于技术投入不够,与国外先进设备差距 比较大。
    但是,进口设备价格昂贵,一般水果生产企业难以负担。而国产设备由于技术投入不够,与国外先进设备差距 比较大。随着机器视觉技术的发展,国外也出现了将机器视觉运用在水果分级系统上的 相关研究,使得国外的水果分级分类系统的性能进一步提高,同时也进一步拉大了我国在水果生产自动化的技术差距。由于我国的现状,如果不在水果产后处理上下功夫,我国的水果出口形势还会非常严峻,这就要求国内的研究者在水果分级技术进一步钻研,使我国的分级技术再上一个新台阶。将机器视觉(也称计算机视觉,图像处理) 技术引入水果园自动化,是解决该问题的有效途径之一。同时,基于机器视觉的水果自动化系统在水果流通过程也可提高自动化程度、降低劳动强度、增加收益提供快速、准确的检测手段。

1.2选题的目的和意义

上世纪 80年代后期,由于计算机广泛生产,计算技术也广泛发展,针对于计算机 视觉在各个领域的的研究成果也日新月异。 国外的很多学者在基于计算机视觉技术而提 高水果的分级速度方面进行了研究,在理论和应用上有了较大进展,并取得了很好的经 济效益。而我国的水果自动识别技术研究则较晚,仅始于 90年代,而且当时从事水果 自动分级系统研究的科研院还很少,研究成果也不是很显著,但那却为我国在水果分级 方面的研究奠定了基础。
    按大小分类是水果识别的一个重要指标。 应义斌研究了利用机器视觉技术精确检测 水果尺寸方法 技术精确检测 水果尺寸方法针对水果的外形特征, 应用水果的最小外接矩形 (MER)的尺寸表示横径和纵径,取得了较为理想的结果 用傅立叶半径描述的 方法测量水果的大小,以水果的自然对称形态特征为依据,水果大小检 测绝对测量误差最大为3mm。 
    水果形状是水果品质检测与分级的一个重要指标,利用图像形 态学方法测量水果的形状,准确率很高,最高能达到 91.4%[6]。提出主要 通过半径这个指标,利用人工神经网络对水果的形状进行识别和分级 采用傅立叶变换与傅立叶反变换对来描述水果的形状 [8]。颜色也是水果检测的重要指标。 通过对不同颜色等级颜色也是水果检测的重要指标。 通过对不同颜色等级的水果进行分析, 进而对水果进行分级 [9]。通过机器视觉自动检测水果表面着色度,获取 彩色图像,并将 RGB 值转换成 HSI 值,用合适色相值累计着色面积百分比进行颜色分 级 [10]。确定了水果颜色特征的提取方法,利用遗传算法实现了多层前向 神经网络识别器的学习设计 [11]。
    在国外,机器视觉是 70年代开始兴起的,它主要应用于卫星遥感和医学方面。它 不仅是人眼的延伸, 而且具有人脑的部分智能识别功能 , 具有速度快、 信息量大、 功能多、 检测精度和效率高等优点。 随着计算机、 控制理论、 模式识别、 人工智能等技术的发展, 机器视觉已广泛应用于军事技术、 科学研究、 医疗卫生、 工农业生产、
    科学研究、 医疗卫生、 工农业生产、 信息技术等领域。 国外在利用机器视觉技术进行水果分类和计数已经取得较大的进展, 国内尚处于探索阶 段。目前,国外已研制出了商用水果自动化系统,并在生产上得到了应用。

1.3课题主要研究内容

(1)本文首先介绍了课题的研究背景及意义,对国内的水果识别方面的研究应用 现状进行了讨论,用苹果作为参考物进行研究,并重点对国内外水果分级技术研究现状进行了分析。
    (2)介绍了一些机器视觉领域基础的方法, 提出了针对特定颜色的图像灰度化方法。
    (3)讨论了水果图像的预处理过程:小波去噪、中值滤波以及水果边界提取。利用 小波去噪和中值滤波相结
    (4)讨论了水果图像的背景分割,针对水果识别生产线的实际情况,对几种不同的 微分梯度算子进行边缘检测实验并对结果进行了对比分析。
    (5)基于形态学的腐蚀与重构最大化地从背景中分离出目标区域。
    (6)通过改进的分水岭算法分割图像并计数。
    运行环境主要介绍了硬件环境和软件环境。
    (1) 硬件环境
    ① 处理器:英特尔至强 E3
    ② 内存:8G
    ③ 硬盘空间:1TB
    ④ 显卡:英伟达 GTX770
    操作系统:Window 98/ME/2000/XP/win7/win8/win8.1
    开发环境主要介绍了本系统采用的操作系统、开发语言。
    (1) 操作系统:Windows 8.1
    (2) 开发语言:C
    (3) 开发环境:MATLAB 2013

1.4MATLAB简介

在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算。这些运算一般来说难以用手工精确和快捷地进行,而要借助计算机编制相应的程序做近似计算。目前流行用Basic、Fortran和C语言编制计算程序,既需要对有关算法有深刻的了解,还需要熟练地掌握所用语言的语法及编程技巧。对多数科学工作者而言,同时具备这两方面技能有一定困难。通常,编制程序也是繁杂的,不仅消耗人力与物力,而且影响工作进程和效率。为克服上述困难,美国Mathwork公司于1967年推出了“Matrix Laboratory”(缩写为Matlab)软件包,并不断更新和扩充。目前最新的5.x版本(windows环境)是一种功能强、效率高便于进行科学和工程计算的交互式软件包。其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一体便于使用的集成环境中。在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。不过,Matlab作为一种新的计算机语言,要想运用自如,充分发挥它的威力,也需先系统地学习它。但由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言——如Basic、Fortran和C等那样难于掌握[16]。实践证明,你可在几十分钟的时间内学会Matlab的基础知识,在短短几个小时的使用中就能初步掌握它.从而使你能够进行高效率和富有创造性的计算。Matlab大大降低了对使用者的数学基础和计算机语言知识的要求,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。自推出后即风行美国,流传世界[17]。 综上所述,Matlab语言有如下特点: 

(1)编程效率高 它是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比Basic、Fortran和C等语言更加接近书写计算公式的思维方式,用Matlab编写程序犹如在演算纸上排列出公式与求解问题。因此,Matlab语言也可通俗地称为演算纸式科学算法语言由于它编写简单,所以编程效率高,易学易懂。 

(2)用户使用方便 Matlab语言是一种解释执行的语言(在没被专门的工具编译之前),它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。人们用任何一种语言编写程序和调试程序一般都要经过四个步骤:编辑、编译、连接以及执行和调试。各个步骤之间是顺序关系,编程的过程就是在它们之间作瀑布型的循环。Matlab语言与其它语言相比,较好地解决了上述问题,把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。 具体地说,Matlab运行时,如直接在命令行输入Mailab语句(命令),包括调用M文件的语句,每输入一条语句,就立即对其进行处理,完成绩译、连接和运行的全过程。又如,将Matlab源程序编辑为M文件,由于Mat1ab磁盘文件也是M文件,所以编辑后的源文件就可直接运行,而不需进行编译。
和连接。在运行M文件时,如果有错,计算机屏幕上会给出详细的出锗信息,用户经修改后再执行,直到正确为止。所以可以说,Mat1ab语言不仅是一种语言,广义上讲是一种该语言开发系统,即语言调试系统。 

(3)扩充能力强高版本的Matlab语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,而且Matlab的库函数同用户文件在形成上一样,所以用户文件也可作为Matlab的库函数来调用。因而,用户可以根据自己的需要方便地建立和扩充新的库函数,以便提高Matlab使用效率和扩充它的功能。另外,为了充分利用Fortran、C等语言的资源,包括用户已编好的Fortran,C语言程序,通过建立Me调文件的形式,混合编程,方便地调用有关的Fortran,C语言的子程序。 

(4)语句简单,内涵丰富 Mat1ab语言中最基本最重要的成分是函数,其一般形式为[a,b,c……]=fun(d,e,f,……),即一个函数由函数名,输入变量d,e,f,……和输出变量a,b,c……组成,同一函数名F,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义(有点像面向对象中的多态性。这不仅使Matlab的库函数功能更丰富,而大大减少了需要的磁盘空间,使得Matlab编写的M文件简单、短小而高效。 

(5)高效方便的矩阵和数组运算 Matlab语言象Basic、Fortran和C语言一样规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变地照搬到数组间的运算,有些如算术运算符只要增加“·”就可用于数组间的运算,另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。在此基础上,高版本的Matlab已逐步扩展到科学及工程计算的其它领域。因此,不久的将来,它一定能名符其实地成为“万能演算纸式的”科学算法语言。 

(6)方便的绘图功能 Matlab的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标,半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。这种为科学研究着想的设计是通用的编程语言所不及的。 总之,Matlab语言的设计思想可以说代表了当前计算机高级语言的发展方向,在不断使用中,人们会发现它的巨大潜力[18]。

1.5MATLAB和图像处理工具箱的背景知识

MATLAB对于技术计算来说是一种高性能语言。它以易于应用的环境集成了计算、可视化的编程,在该环境下,问题及其解以我们熟悉的数学表示法来表示。典型的应用包括如下方面[4]:

(1)数学和计算

(2)算法开发

(3)数据获取

(4)建模、模拟和原型设计

(5)数据分析、研究和可视化

(6)科学和工程图形

(7)应用开发,包括图像用户界面构建

MATLAB是一种交互式系统,其基本数据元素是并不要求确定维数的一个数组。这就允许人们用公式化方法求解许多技术计算问题,特别是涉及矩阵表示的问题。有时,MATLAB可调用C或Fortran这类非交互式语言所编写的程序。

在高等院校中,对于数学、工程和科学理论中的入门课程和高级课程,MATLAB都是标准的计算工具。图像处理工具箱是一个MATLAB函数(称为M函数或M文件)集,它扩展了MATLAB解决图像处理问题的能力。其他有时用于补充IPT的工具箱是信号处理、神经网络、模糊逻辑和小波工具箱。 

2数字图像边缘检测关于边缘的定义

边缘是不同区域的分界线,是图像局部强度变化最显著的那些像素的集合。图像强度的显著变化可分为:

(1)阶跃变化(函数),即图像强度在不连续处的两边的像素灰度值有着显著差异;

(2)线条(屋顶)变化(函数),即图像强度突然从一个值变化到另一个值,保持一较小行程后又回到原来的值。

边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,边缘是位于两个区域的边界线上的连续像素集合,在边缘处,灰度和结构等信息产生突变。边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。

图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。

2.1基于一阶微分的边缘检测算子

图像的局部边缘定义为两个强度明显不同的区域之间的过渡,图像的梯度函数即图像灰度变化的速率将在这些过度边界上存在最大值,通过基于梯度算子或导数检测器来估计图像灰度变化的梯度方向,增加图像的这些变化区域,然后对该梯度进行阈值运算,如果梯度值大于某个给定门限,则存在边缘。再将被确定为边缘的像素连接起来,以形成包围着区域的封闭曲线。

一阶导数可以用于检测图像中的一个点是否在斜坡上,二阶导数的符号可以用于判断一个边缘点是在边缘亮的一边还是暗的一边。

两种常见的边缘一阶导数和二阶导数示意图[5]:

</

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值