CN1265169C - 水果尺寸检测的方法 - Google Patents

水果尺寸检测的方法 Download PDF

Info

Publication number
CN1265169C
CN1265169C CN 200510049489 CN200510049489A CN1265169C CN 1265169 C CN1265169 C CN 1265169C CN 200510049489 CN200510049489 CN 200510049489 CN 200510049489 A CN200510049489 A CN 200510049489A CN 1265169 C CN1265169 C CN 1265169C
Authority
CN
China
Prior art keywords
fruit
point
maxtemp
max
border
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 200510049489
Other languages
English (en)
Other versions
CN1664499A (zh
Inventor
饶秀勤
应义斌
蒋焕煜
王剑平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN 200510049489 priority Critical patent/CN1265169C/zh
Publication of CN1664499A publication Critical patent/CN1664499A/zh
Application granted granted Critical
Publication of CN1265169C publication Critical patent/CN1265169C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Length Measuring Devices By Optical Means (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种水果尺寸检测的方法,以水果图像形心O为坐标系原点,水平和垂直方向分别为X轴和Y轴;定义变量DMax和DMin;在边界上半部取点A,计算AO与边界的交点B;在边界取点C和D,使CD垂直于AB;在A点移动之前,将所有垂线CD长度的极大值存入MaxTemp,MaxTemp与DMin较大者存入DMax;MaxTemp与DMin的较小者存入DMin;运算完成后,DMax和DMin分别代表纵径和横径;快速运算方法是:以X轴为AO,旋转边界,实现AO与边界之间的相对旋转运动,完成尺寸检测。所采用的装置包括编码器,两个链轮,链式输送装置,滚轮托板,光照箱,摄像机,图像采集卡,计算机及水果尺寸检测软件。本发明可以快速准确地计算细长形水果的纵径和横径。

Description

水果尺寸检测的方法
技术领域
本发明涉及一种水果尺寸检测的方法。
背景技术
水果尺寸检测主要涉及到水果的大小形状和水果表面的损伤程度这两个方面的内容,二者均为水果分级的重要依据之一,在世界各国的水果评级标准中有严格的规定。
Marchant J.A.(Marchant,J.A.,C.M.Onyango,and M.J.Street.1988.HighSpeed Sorting of Potatoes Using Computer Vision.ASAE Paper No.88-3540)研制成功了一种根据尺寸对马铃薯进行分级的机器视觉系统,该系统的分级精度和速度还不能满足实际生产的需要;应义斌(应义斌.水果尺寸和面积的机器视觉检测方法研究.浙江大学学报:农业与生命科学版,2000,26(3):-229-232)在建立图像中的点与被测物体上的点之间的定量关系的基础上,提出了利用物体的边界信息求出物体的形心坐标的方法,进而可利用机器视觉技术精确检测水果尺寸,检测精度达96%;冯斌根据水果对称性对苹果尺寸的进行检测(冯斌,汪懋华.基于计算机视觉的水果大小检测方法,农业机械学报.2003,34(1):73-75);此外,最小外接矩MER(The Minimum Enclosing Rectangle)法也可用于水果的纵横径检测(Kenneth R.Castleman(美),朱志刚等译.数字图像处理.北京:电子工业出版社,2002)。
但在分级生产中,这些方法对于细长形水果所有均不适合。应义斌的方法是用与水果形心点和果梗与梨体交界点的连续垂直的最大宽度来代表水果的最大横径,对于采摘后不留果梗的水果不适合;MER方法处理过程是:旋转水果图像,当最小面积出现时,水果图像边界在X轴和Y轴方向的差分别代表其纵径和横径,但是,由于水果外形不规则,MER方法检测到的纵径和横径检测点与实际检测点存在一定的差异,会引入较大的误差。
发明内容
本发明通过模拟卡尺检测水果的过程,提出了一种水果尺寸检测的方法,并通过试验验证了该方法的可靠性。
本发明解决其技术问题所采用的技术方案是:
一、水果尺寸检测的方法:
水果图像进行二值分割、滤波和边缘检测后,得到边界和形心O;将坐标系的原点放在形心O处,取水平方向为X轴方向,垂直方向为Y方向;另有两个点S和E,分别为水果边界与X轴正方向和负方向的交点;水果边界点存放在于动态数组Edge,其长度等于水果边界点的数目EdgeTotal;定义两个变量DMax和DMin,分别用来表示水果的纵径和横径,DMax和DMin的初值分别为0和图像的对角线长度;计算水果纵径和横径的方法是:在X轴的上方的水果边界上从S点开始,沿逆时针方向,逐点选取A点,计算出直线AO与边界的交点B;在弧AEB上,从A点开始,逐点选取点C,在弧BSA上查找点D,使CD垂直于AB;计算CD的长度;在A点移动到下一点之前,比较AB所有的垂线CD的长度,取最大值MaxTemp,如果该最大值大于DMax,则令DMax等于该最大值,如果该最大值小于DMin,则令DMin等于该最大值;运算完成后,DMax和DMin分别代表水果的纵径和横径。
二、水果尺寸检测的方法的装置:
包括编码器,两个链轮,链式输送装置,滚轮托板,光照箱,摄像机,图像采集卡,计算机。编码器安装在一个链轮上,其输出的同步脉冲连接在图像采集卡的触发信号输入端;链式输送装置通过链条环绕在两个链轮上;摄像机安装在光照箱内部上方,摄像机的输出信号通过电缆输入到图像采集卡的图像输入端;图像采集卡安装在计算机的插槽内;计算机上安装水果图像检测软件。
所述的链式输送装置:包括链条,滚轮轴,滚轮;滚轮轴穿过链条和滚轮,上装被测水果的两个滚轮对称地分布在链条的两侧。
本发明具有的有益的效果是:克服了在检测水果尺寸时,MER方法检测到的纵径和横径检测点与实际检测点之间差异引起的误差,能准确地计算细长形水果的纵径和横径。
附图说明
图1是本发明的装置结构原理示意图;
图2是本发明的软件流程图;
图3是图1的A处局部放大图;
图4是图1的B向视图;
图5是脐橙的一幅图像;
图6是图5所示脐橙图像的边界、形心位置及坐标系;
图7是计算水果纵径和横径的过程示意图;
图8是快速计算水果纵径和横径的方法示意图;
图9是计算水果纵径和横径方法的流程图;
图10是快速计算水果纵径和横径方法的流程图;
图中:1、编码器,2、链轮,3、链式输送装置,3.1、链条,3.2、滚轮轴,3.3、滚轮,4、滚轮托板,5、光照箱,6、摄像机,7、图像采集卡,8、计算机,9、水果尺寸检测软件,10、被测水果。
具体实施方式
如图1所示,本发明由编码器1,两个链轮2,链式输送装置3,滚轮托板4,光照箱5,摄像机6,图像采集卡7,计算机8及水果尺寸检测软件9组成机器视觉系统。两个链轮2间装有链式输送装置3,一个链轮2上装有编码器1,链式输送装置3的上链条3.1下装有滚轮托板4,上链条3.1上装有光照箱5。
如图3和图4所示,链式输送装置3由链条3.1,滚轮轴3.2,滚轮3.3组成;滚轮轴3.2穿过链条3.1和滚轮3.3,滚轮3.3对称地分布在链条3.1的两侧。
编码器1安装在一个链轮2上,其输出的同步脉冲连接在图像采集卡7的触发信号输入端;链式输送装置3通过链条3.1环绕在链轮2上;摄像机6安装在光照箱内部上方,摄像机6的输出信号通过电缆输入到图像采集卡7的图像输入端;图像采集卡7安装在计算机8的插槽内;计算机8上安装水果图像检测软件。
工作时,在外部动力机带动下,链轮2顺时针方向旋转,带动链式输送装置3作顺时针环绕运动,另一方面,编码器1也随链轮2旋转,并按一定的规律产生同步脉冲信号,同步脉冲输入图像采集卡7,触发图像采集卡7采集图像。
图5为采用上述机器视觉系统采集的一幅脐橙图像,对该图像按图2所示的流程图进行二值分割、滤波和边缘检测后,得到如图6所示的边界点,在图6中,O点为该脐橙图像形心。进行水果尺寸(纵径、横径)检测时,将坐标系的原点放在形心O处,取水平方向为X轴方向,垂直方向为Y方向。在图6中,另有两个点S和E,分别为水果边界与X轴正方向和负方向的交点。
在以下的说明检测方法时,均以C语言为例。
定义自定义结构,用于存贮边界数据:
struct EdgeNode
{
       int x;∥点的横坐标
       int y;∥点的纵坐标
};
建立一个EdgeNode型的动态数组Edge,其长度等于水果边界点的数目EdgeTotal,将水果边界点从S开始沿逆时针方向逐点放入数组Edge中。
另外定义两个变量DiameterMax和DiameterMin,分别用来表示水果的纵径DMax和横径DMin
设立一个变量MaxTemp,用来保存某一次搜索过程中计算得到的极大值。
开始时,分别设定DiameterMax和MaxTemp的值为0,DiameterMin的为水果图像的对角线长度。
下面对照图7和图9,说明计算步骤:
①在S点与E点之间,沿逆时针方向,依次在水果的边界上取点A;
②在边界上查找点B,使直线AO与水果边界相交于B点;
③在弧AEB上,沿逆时针方向,依次在水果边界上取点C;
④在弧BSA上,查找点D,使CD垂直于AB;
⑤计算CD的长度LCD
⑥如果LCD大于MaxTemp,则MaxTemp=LCD
⑦判断C是否已到达B点,如果没有,则取下一点,重复③;否则继续下一步;
⑧比较MaxTemp与DiameterMax和DiameterMin的值,如果MaxTemp大于DiameterMax,则令DiameterMax=MaxTemp;如果MaxTemp小于DiameterMin,则令DiameterMin=MaxTemp;
⑨判断A是否已到达E点,如果没有,则取下一点,重复①;否则结束运算。
经过上述运算后,DiameterMax和DiameterMin分别代表水果的纵径和横径。
在上述计算步骤②中,查找点B的方法是:从点A下一点开始,沿逆时针方向,选取一点P,计算PO的斜率,如果PO的斜率等于AB的斜率,则P即为B点,否则选取下一点。
在上述计算步骤④中,在弧BSA上,查找点D的方法是:从点B下一点开始,沿逆时针方向,选取一点Q,计算QC的斜率,将QC的斜率与AB的斜率相乘,如果乘积为-1,则Q即为D点,否则选取下一点。
在上述方法中,由于查找B点和D点均需要进行大量的搜索运算,检测效率会有所降低,而在实际生产中,对计算速度有一定的要求,可以采用快速计算方法。其方法是,将直线AO固定X轴,而旋转水果图像的边界,从而实现直线AO与水果图像边界之间的相对旋转运动。
下面对照图8及图10说明具体的实现方法:
设立两个长度相等的数组SinValue和CosValue,按照一定的角度间隔(如3°)从0°到180°分别计算正弦值和余弦值,分别存入数组SinValue和CosValue。数组的长度用变量RotateTimes存贮,例如,当角度间隔为3°时,RotateTimes为60。
在编制计算机程序中,预先通过试验确定角度间隔,使检测精度符合水果分级生产要求,然后计算出SinValue和CosValue,将这两个数组作为常量编制到计算程序中。
同样定义两个变量DiameterMax和DiameterMin,分别用来保存水果的纵径和横径,设立一个变量MaxTemp,用来保存某一次搜索过程中计算出的极大值。开始时,分别设定DiameterMax和MaxTemp的值为0,DiameterMin的为水果图像的对角线长度。
定义变量i,用于指示旋转角度。
定义EdgeNode型数组EdgeTemp,EdgeTemp的长度与Edge相等。
定义变量j,用于指示EdgeTemp下标。
定义变量Left,Right,分别用来指示边界最左边或最右边的点。
下面对照图8和图10,说明计算步骤:
①i=0;
②按式(1)分别计算EdgeTemp的x和y分量:
EdgeTemp [ j ] . x = Edge [ j ] . x * CosValue [ i ] - Edge [ j ] . y * SinValue [ i ] EdgeTemp [ j ] . y = Edge [ j ] . x * SinValue [ i ] + Edge [ j ] . y * CosValue [ i ] j = 0,1 , . . . EdgeTotal - 1 . . . ( 1 )
③对EdgeTemp作如下操作以确定边界最左边的点:
LeftRightTemp=0;
for(j=0;j<EdgeTotal;j++)
{
  if(EdgesTemp[j].x<LeftRightTemp)
  {
    Left=j;
    LeftRightTemp=EdgesTemp[j].x;
  }
}
操作完成后,Left对应图8中的E’点。
④对EdgeTemp作如下操作以确定边界最右边的点:
LeftRightTemp=0;
for(j=0;j<EdgeTotal;j++)
{
   if(EdgesTemp[j].x>LeftRightTemp)
   {
        Right=j;
        LeftRightTemp=EdgesTemp[j].x;
   }
}
操作完成后,Right对应图8中的S’点。
⑤在弧S’SE’上,从S’点开始,逐点选取点G,然后在E’ES’弧上,查找点H,使GH平行于Y轴,即找到一个点H,使H点的横坐标与G点的横坐标相等;
⑥计算GH的长度LGH
⑦如果LCD大于MaxTemp,则MaxTemp=LCD
⑧判断G是否已到达S’点,如果没有,则取下一点,重复⑤;否则继续下一步;
⑨比较MaxTemp与DiameterMax和DiameterMin的值,如果MaxTemp大于DiameterMax,则令DiameterMax=MaxTemp;如果MaxTemp小于DiameterMin,则令DiameterMin=MaxTemp;
⑩判断i值是否小于RotateTimes,如果是,则i值加1,重复②,否则结束运算。
经过上述运算后,DiameterMax和DiameterMin分别代表水果的纵径和横径。

Claims (5)

1.一种水果尺寸检测的方法,其特征在于该方法的步骤如下:水果图像进行二值分割、滤波和边缘检测后,得到边界和形心O;将坐标系的原点放在形心O处,取水平方向为X轴方向,垂直方向为Y方向;另有两个点S和E,分别为水果边界与X轴正方向和负方向的交点;水果边界点存放在于动态数组Edge,其长度等于水果边界点的数目EdgeTotal;定义两个变量DMax和DMin,分别用来表示水果的纵径和横径,DMax和DMin的初值分别为0和图像的对角线长度;计算水果纵径和横径的方法是:在X轴的上方的水果边界上从S点开始,沿逆时针方向,逐点选取A点,计算出直线AO与边界的交点B;在弧AEB上,从A点开始,逐点选取点C,在弧BSA上查找点D,使CD垂直于AB;计算CD的长度;在A点移动到下一点之前,比较AB所有的垂线CD的长度,取最大值MaxTemp,如果该最大值大于DMax,则令DMax等于该最大值,如果该最大值小于DMin,则令DMin等于该最大值;运算完成后,DMax和DMin分别代表水果的纵径和横径。
2.根据权利要求1所述的一种水果尺寸检测的方法,其特征在于,计算水果纵径和横径方法的具体实现过程是:
定义变量MaxTemp,用来保存某一次搜索过程中计算得到的极大值;
分别设定DMax和MaxTemp的值为0,DMin的为水果图像的对角线长度;
计算步骤为:
①在S点与E点之间,沿逆时针方向,依次在水果的边界上取点A;
②在边界上查找点B,使直线AO与水果边界相交于B点;
③在弧AEB上,沿逆时针方向,依次在水果的边界上取点C;
④在弧BSA上,查找点D,使CD垂直于AB;
⑤计算CD的长度LCD
⑥如果LCD大于MaxTemp,则MaxTemp=LCD
⑦判断C是否已到达B点,如果没有,则取下一点,重复③;否则继续下一步;
⑧比较MaxTemp与DMax和DMin的值,如果MaxTemp大于DMax,则令DMax=MaxTemp;如果MaxTemp小于DMin,则令DMin=MaxTemp;
⑨判断A是否已到达E点,如果没有,则取下一点,重复①;否则结束运算;
经过上述运算后,DMax和DMin分别代表水果的纵径和横径。
3.根据权利要求2所述的一种水果尺寸检测的方法,其特征在于查找点B,其方法是:从点A下一点开始,沿逆时针方向,选取一点P,计算PO的斜率,如果PO的斜率等于AB的斜率,则P即为B点,否则选取下一点。
4.根据权利要求2所述的一种水果尺寸检测的方法,其特征在于查找点D,其方法是:在弧BSA上,从点B下一点开始,沿逆时针方向,选取一点p,计算QC的斜率,将QC的斜率与AB的斜率相乘,如果乘积为-1,则Q即为D点,否则选取下一点。
5.根据权利要求1所述的一种水果尺寸检测的方法,其特征在于,计算水果纵径和横径方法的快速运算方法是:将直线AO固定为X轴,旋转水果图像的边界,从而实现直线AO与水果图像边界之间的相对旋转运动,完成水果的纵径和横径检测;具体的实现方法是:
定义两个长度相等的数组SinValue和CosValue,从0°到180°分别按照一定的角度间隔计算正弦值和余弦值,并存入数组SinValue和CosValue,将这两个数组作为常量编制到计算程序中;数组的长度用变量RotateTimes存贮;
定义两个变量DMax和DMin,分别用来保存水果的纵径和横径;
定义变量MaxTemp,用来保存某一次搜索过程中计算出的极大值;
开始时,分别设定DMax和MaxTemp的值为0,DMin的为水果图像的对角线长度;
定义变量i,用于指示旋转角度;
定义EdgeNode型数组EdgeTemp,EdgeTemp的长度与Edge相等;
定义变量j,用于指示EdgeTemp下标;
定义变量Left,Right,分别用来指示边界最左边或最右边的点;
计算步骤为:
①i=0;
②按式(1)分别计算EdgeTemp的x和y分量:
EdgeTemp [ j ] . x = Edge [ j ] . x * CosValue [ i ] - Edge [ j ] . y * SinValue [ i ] EdgeTemp [ j ] . y = Edge [ j ] . x * SinValue [ i ] + Edge [ j ] . y * CosValue [ i ] ( j = 0,1 , ΛEdgeTotal - 1 ) - - - ( 1 )
③对EdgeTemp作如下操作以确定边界最左边的点:
LeftRightTemp=0;
for(j=0;j<EdgeTotal;j++)
{
if(EdgesTemp[j].x<LeftRightTemp)
   {
    Left=j;
    LeftRightTemp=EdgesTemp[j].x;
   }
}
操作完成后,Left对应图8中的E’点;
④对EdgeTemp作如下操作以确定边界最右边的点:
LeftRightTemp=0;
for(j=0;j<EdgeTotal;j++)
{
   if(EdgesTemp[j].x>LeftRightTemp)
   {
      Right=j;
      LeftRightTemp=EdgesTemp[j].x;
   }
}
操作完成后,Right对应图8中的S’点;
⑤在弧S’SE’上,从S’点开始,逐点选取点G,然后在E’ES’弧上,查找点片,使GH平行于Y轴,即找到一个点H,使H点的横坐标与G点的横坐标相等;
⑥计算GH的长度LGH;
⑦如果LCD大于MaxTemp,则MaxTemp=LCD;
⑧判断G是否已到达S’点,如果没有,则取下一点,重复⑤;否则继续下一步;
⑨比较MaxTemp与DMax和DMin的值,如果MaxTemp大于DMax,则令DMax=MaxTemp;如果MaxTemp小于DMin,则令DMin=MaxTemp;
⑩判断i值是否小于数组的长度变量RotateTimes,如果是,则i值加1,重复②,否则结束运算;
经过上述运算后,DMax和DMin分别代表水果的纵径和横径。
CN 200510049489 2005-03-28 2005-03-28 水果尺寸检测的方法 Expired - Fee Related CN1265169C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200510049489 CN1265169C (zh) 2005-03-28 2005-03-28 水果尺寸检测的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200510049489 CN1265169C (zh) 2005-03-28 2005-03-28 水果尺寸检测的方法

Publications (2)

Publication Number Publication Date
CN1664499A CN1664499A (zh) 2005-09-07
CN1265169C true CN1265169C (zh) 2006-07-19

Family

ID=35035698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510049489 Expired - Fee Related CN1265169C (zh) 2005-03-28 2005-03-28 水果尺寸检测的方法

Country Status (1)

Country Link
CN (1) CN1265169C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101482390B (zh) * 2009-02-17 2010-04-14 北京市农林科学院 一种无线果实膨大传感器及其控制方法
TWI766770B (zh) * 2021-07-23 2022-06-01 艾士迪機電工程股份有限公司 智慧化西瓜裝卸系統

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101929849B (zh) * 2010-07-30 2012-02-01 浙江大学 一种香菇外形检测方法
CN102750547B (zh) * 2012-06-11 2014-07-23 陕西科技大学 一种基于压缩传感的水果大小分级方法
WO2015045781A1 (ja) * 2013-09-24 2015-04-02 ヤマハファインテック株式会社 幅測定装置及び幅測定方法
CN105184775B (zh) * 2015-08-14 2017-09-29 浙江大学 基于特征向量定向的椭球形水果尺寸快速检测方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101482390B (zh) * 2009-02-17 2010-04-14 北京市农林科学院 一种无线果实膨大传感器及其控制方法
TWI766770B (zh) * 2021-07-23 2022-06-01 艾士迪機電工程股份有限公司 智慧化西瓜裝卸系統

Also Published As

Publication number Publication date
CN1664499A (zh) 2005-09-07

Similar Documents

Publication Publication Date Title
CN1265169C (zh) 水果尺寸检测的方法
CN1324525C (zh) 用于嵌入和检测图像中数字水印的装置和方法
CN100338433C (zh) 激光扫描器与机器人的相对位置的标定方法
CN101046480A (zh) 检测瓶子及类似容器的方法及装置
CN1769981A (zh) 光取向用偏振光照射装置
CN1495673A (zh) 根据部分数据的移动距离和角度产生重组图像数据
CN1168819A (zh) 物品分拣和输送装置
CN203824934U (zh) 商标镜面外观检验光学系统
CN101057135A (zh) X射线ct系统及x射线ct方法
CN1737547A (zh) 具有双向成像装置的用于光学分析水果等产品的设备
CN1661361A (zh) 适于球形水果表面检测的按需触发图像采集方法及装置
CN110220921A (zh) 一种基于机器视觉的钢管表面图像采集装置及采集方法
CN1275020C (zh) 水果形状的多尺度能量检测方法
CN101042733A (zh) 一种利用滑动采集获取完整指纹的图像拼接方法
CN115753813A (zh) 检测晶圆缺陷的方法、装置、系统、存储介质及电子设备
CN101068067A (zh) 火花塞的制造方法和制造装置
JP6188542B2 (ja) ペットボトル選別装置
CN1176348C (zh) 塑料膜的热封位置检测装置
CN1932492A (zh) X光检查装置
CN1250960C (zh) 表面检测装置
JP5508106B2 (ja) 流動物内の異物検出方法、異物検出装置及び異物検出プログラム
CN1929550A (zh) 一种检测运动目标的方法和系统
CN1815492A (zh) 处理图像且在图像中检测标记的方法、装置及存储介质
CN101038281A (zh) 一种现状和非现状条件下水体透明度的测量方法
CN1976576A (zh) 表面安装机

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060719