CN109360236B - 一种向日葵花盘尺寸测量方法 - Google Patents
一种向日葵花盘尺寸测量方法 Download PDFInfo
- Publication number
- CN109360236B CN109360236B CN201811254681.9A CN201811254681A CN109360236B CN 109360236 B CN109360236 B CN 109360236B CN 201811254681 A CN201811254681 A CN 201811254681A CN 109360236 B CN109360236 B CN 109360236B
- Authority
- CN
- China
- Prior art keywords
- image
- disc
- tip
- point
- coordinates
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/187—Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/66—Analysis of geometric attributes of image moments or centre of gravity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种向日葵花盘尺寸测量方法,提出一种采用图像处理进行快速、准确、非破坏性的获取向日葵花盘、圆盘等的尺寸的装置及方法。通过特制的背景板和遮挡板在现场非破坏性地采集向日葵的花盘图像,自动进行图像的投影变换,通过查找花盘的舌状小花的尖端点,采用本发明所提出的尖端包裹法确立花盘的尖端轮廓,通过测量向日葵花盘的多个不同径向的直径,并计算平均值作为向日葵花盘的直径。通过纹理分割、形态学的开运算和闭运算等操作,提取圆盘,并计算圆盘的直径。最后建立对花盘和圆盘的平均直径的预测模型。本发明准确性高,对尺度变化不敏感。能进行快速无损测量,人工工作量极小。自动化程度高,无需人工干预。
Description
技术领域
本发明属于植物表型、花卉形态学、图像处理领域,具体涉及一种向日葵花盘尺寸测量方法。
背景技术
向日葵(Helianthus annuus L.)是菊科向日葵属的一年生草本植物,被誉为具有重要经济价值的世界四大油料作物之一(马昌盛,王彪,李勇,等.宁南山区食葵与油葵的开花生物学观察[J].中国蜂业,2017,68(10):15-17)。向日葵为头状花序,生长在茎的顶端,俗称花盘。其形状有凸起、平展和凹下三种类型。花盘上有两种花,即舌状花和管状花。舌状花1~3层,着生在花盘的四周边缘,为无性花。它的颜色和大小因品种而异,有橙黄或淡黄色,具有引诱昆虫前来采蜜授粉的作用。管状花,位于舌状花内侧,为两性花,主要生长在圆盘区域。花冠的颜色有黄、褐色等(邹江腾,刘胜利,陈寅初.观赏向日葵的应用及种植技术[J].新疆农垦科技,2013(6):18-19)。
向日葵是典型的异花授粉作物,必须在传粉昆虫或其它生物媒介的作用下才能授粉(李艳花.向日葵种质资源遗传多样性的SSR分析及4个油葵的品比试验[D].西北农林科技大学,2015)。向日葵自花授粉结实率极低,仅为3%左右,而异花授粉结实率高。调节播期、适时施肥浇水、防治病虫害,以及采取放蜂或人工辅助授粉等措施可提高结实率(牛庆生,陈东海.吉林试验站开展蜜蜂为向日葵授粉试验工作[J].中国蜂业,2011,62(10):11)。已有的研究表明,向日葵花粉、花色、花香、花蜜量和花盘上舌状小花的大小等是吸引蜜蜂等传粉者的重要植物性状。向日葵产量与向日葵花盘的大小密切相关。花盘的大小是产量的一个重要指标(张雷,宋宝军,于学鹏,等.食用向日葵产量与主要性状相关及通径分析[J].黑龙江农业科学,2010(9):46-49)。同时,向日葵的产量还在一定程度上取决于蜜蜂及人工辅助授粉,将花粉在雄性和雌性花朵间移动以产生杂交种子,蜜蜂的采蜜等行为可以增加授粉能力,即可提高产量([闫素珍,高海燕,张艳,等.临河区食用向日葵蜜蜂授粉增产效果研究[J].中国蜂业,2017,68(2):39-40)。
将机器视觉和图像处理技术应用于农业研究与生产,具有广泛的应用前景和实用价值,例如根据植物的视觉差异进行识别(陈肖蒙,王瑜,肖洪兵.基于可变局部边缘模式的绿色植物物种识别[J].智能***学报,2018,13(4):571-576)、检查和分级水果和蔬菜(王东亭,付峰,饶秀勤,等.基于分级处理生产线的脐橙全程追溯***[J].农业工程学报,2013,29(5):228-236)、对药用植物叶片进行分类(金力,阚红星,许钒,等.一种新的药用植物叶片自动分类方法的构建[J].通化师范学院学报,2017,38(4):42-45)、畜禽生长监测(张丽娜,武佩,乌云塔娜,等.基于图像的肉羊生长参数实时无接触监测方法[J].农业工程学报,2017,33(24):182-191)等。
在向日葵的花盘和圆盘等组件的参数测量方面,常用人工方法获取向日葵的花盘和圆盘的直径、面积等参数(贾秀苹,卯旭辉,岳云.向日葵不同品种(系)主要性状与产量间的相关分析[J].中国种业,2014(12):50-53);而基于图像处理的向日葵植株、叶片及花盘等研究较少。郭丽娟根据向日葵种子内部含油率不同,采用近红外技术和计算机视觉技术设计了种子自动分选***,将种子准确的区分为两个级别,提高了种子的经济效益(郭丽娟.基于计算机视觉技术的向日葵种子分选***设计[J].农机化研究,2017,39(4):234-236)。狄鹏慧等人以向日葵叶部锈病为主要研究对象,以Matlab为平台,将自然光照条件下采集到的向日葵叶部病害图像进行预处理,再分别利用病斑的颜色特征及纹理特征,对向日葵叶部病害进行了较准确的识别诊断(狄鹏慧,吕芳.基于图像识别的向日葵叶部锈病诊断探究[J].电子测试,2015(4):61-63)。越鲜梅以Matlab为平台,利用其GUI工具箱开发了基于图像识别的向日葵叶部病害诊断***;经过多次测试发现,能够较准确地识别出向日葵的细菌性叶斑病、黑斑病和霜霉病(越鲜梅.基于图像识别的向日葵叶部病害诊断技术研究[D].内蒙古工业大学,2013)。Ducournau等人开发了一种用于自动监测向日葵种子发芽率的图像采集***,将彩色图像转换为二值图像,进行发芽种子的计数,检测平均发芽时间(Ducournau S,Feutry A,Plainchault P,et al.An image acquisition system forautomated monitoring of the germination rate of sunflower seeds[J].Computers&Electronics in Agriculture,2004,44(3):189-202)。Arribas等提出了一种基于机器视觉和神经网络的向日葵叶片自动分类***,首先进行基于RGB颜色空间的分割;其次从分割的图像中提取叶片形态特征,然后以叶片的周长、面积、拟合椭圆长轴、短轴和宽高比作为特征集,最后采用广义感知器神经网络架构与后验概率模型选择算法确定目标是否为向日葵叶片。实验结果表明,所提出***的正确分类率为85%(Arribas J I,Sánchez-FerreroG V,Ruiz-Ruiz G,et al.Leaf classification in sunflower crops by computervision and neural networks[J].Computers and Electronics in Agriculture,2011,78(1):9-18)。
鉴于国内外基于图像处理技术进行向日葵的相关研究较少,且由于向日葵花盘等的尺寸与传粉者的吸引力、葵花籽的产量估计密切相关。常用人工测量的方法,也有结合图像进行向日葵花盘参数的半自动测量的研究,但是测量效果比较差,耗时耗力。本发明设计了背景板、遮挡板以及三脚架用于图像采集,通过新开发的算法及编程实现自动化的准确、快速测量花盘参数,统计分析花盘多个径向的直径,随之获取向日葵花盘、圆盘等的面积、周长等几何参数。所提出的方法具有快速无损、工作量小、精度高等优点,将为向日葵产量估计、育种相关的表型研究、传粉媒介相互作用等提供技术支持。
发明内容
本发明要解决的是目前人工测量向日葵花盘、圆盘的尺寸,耗时耗力、重复性差的技术问题,从而提供一种向日葵花盘尺寸测量方法。
为解决上述技术问题,本发明所采用的技术方案如下:
一种向日葵花盘尺寸测量方法,步骤如下:
S1,获取向日葵花盘原始RGB图像a1。
S2,将原始图像a1进行二值化处理得到二值化图像a3;
S2.1,将原始图像a1转换为灰度图像a2;
采用matlab软件中的函数rgb2gray(),将原始图像a1转换为灰度图像a2;
S2.2,将灰度图像a2转换为二值化图像a3;
采用matlab软件中的函数graythresh(),提取将灰度图像a2转换为二值图像所需的阈值;结合阈值,采用matlab软件中的函数im2bw(),将灰度图像a2转换为二值化图像a3;
S3,将二值化图像a3进行图像裁切得到裁切图像a4;
采用matlab中的求和函数sum(),从左向右统计二值化图像a3的每列的像素之和,得到数组gelie,该数组的大小与二值化图像a3的列数相同,并且存储二值化图像a3的每列的像素和;通过matlab中的函数size()获取二值化图像a3的大小,并设定图像共有m行、n列;
从图像的最左侧的第1列开始,每次列数加1,如果从第zuoqishilie-39列开始直到第zuoqishilie列,这连续出现的40个列的所有像素值之和大于40*m-120,则认定第zuoqishilie列为左侧起始列(第zuoqishilie-39列到第zuoqishilie列的像素大都为白色,可以判定该区域的左侧为干扰物,右侧为背景板,可将第zuoqishilie列左侧的区域裁减掉)。
从图像的最右侧的第1列开始,每次列数减1,直到第youzhongzhilie列,如果从第youzhongzhilie列开始直到第youzhongzhilie-39列,这连续出现的40个列的像素值之和大于40*m-120,则认定第youzhongzhilie列为右侧终止列(第youzhongzhilie-39列到第youzhongzhilie列的像素大都为白色,可以判定该区域的左侧为背景板,右侧为干扰物,可将第youzhongzhilie列右侧的区域裁减掉)。
将图像a3的第zuoqishilie列到第youzhongzhilie列范围内的像素保存到裁切图像a4,a4即为二值化图像a3的剪裁图像,a4保存的是感兴趣的四个黑色圆形标记物范围内的二值图像区域。
将图像a1的第zuoqishilie列到第youzhongzhilie列范围内的像素保存到argbcaijian,argbcaijian即为原始图像a1的剪裁图像,argbcaijian保存的是感兴趣的四个黑色圆形标记物范围内的彩色图像区域。
S4,提取裁切图像a4中四个标记物的质心坐标.
设定左上角的标记物为bjw1、右上角的标记物为bjw2、右下角的标记物为bjw3、左下角的标记物为bjw4;
S4.1,获取裁切图像a4的大小并设定裁切图像a4有cjm行、cjn列。
通过matlab中的函数size()获取裁切图像a4的大小。
S4.2,将裁切图像a4分割为图像ashangsh和图像axiash。
将裁切图像a4中的1~cjm*0.2行的像素值存储到图像ashangsh中,将裁切图像a4中的cjm*0.8~cjm行的像素值存储到图像axiash中。
如果cjm*0.2、cjm*0.8不是整数的话,采用matlab中的取整函数floor()进行取整操作。
S4.3,对图像ashangsh进行处理得到标记物bjw1和标记物bjw2的质心坐标。
S4.3.1,对图像ashangsh进行连通区域标记,得到矩阵lts。
采用matlab中的函数bwlabeln对图像ashangsh进行连通区域标记。
S4.3.2,根据矩阵lts,得到图像ashangsh连通区域的总数量ltszs。
采用函数max(max(lts))得到图像ashangsh中的连通区域的总数量ltszs。
S4.3.3,获得各连通区域面积的数组STATSs。
采用matlab中的函数regionprops(),获得各个连通区域的面积(即像素数)的数组STATSs。
S4.3.4,得到各连通区域的面积矩阵getmianjis(i)。
采用STATSs().Area将各个连通区域的面积存储到getmianjis(i)中,其中i的值为1~ltszs,分别对应第1~ltszs个连通区域的面积。
S4.3.5,查找面积最大的连通区域,并将该连通区域在矩阵lts的位次值存储到矩阵zuidas。
采用matlab中的函数find()查找面积最大的连通区域。
S4.3.6,计算各个连通区域的质心,并将各个连通区域的质心的坐标存储到数组zhixins,则zhixins(zuidas)表示的标记物bjw1或标记物bjw2的质心坐标。
采用matlab中的函数regionprops()计算各个连通区域的质心。
S4.3.7,确定标记物bjw1或标记物bjw2的质心坐标。
如果zhixins(zuidas)的列坐标大于0.5*cjn,则判定zhixins(zuidas)表示右上角的标记物bjw2的质心坐标,否则判定zhixins(zuidas)表示左上角的标记物bjw1的质心坐标。
S4.3.8,确定标记物bjw2或标记物bjw1的质心坐标。
将矩阵lts中的值为zuidas的元素全部置0,并重复步骤S4.3.5-S4.3.6,得到标记物的质心坐标zhixins(zuidas2);如果zhixins(zuidas)表示右上角的标记物bjw2的质心坐标,则zhixins(zuidas2)表示左上角的标记物bjw1的质心坐标;反之,如果zhixins(zuidas)表示左上角的标记物bjw1的质心坐标,则zhixins(zuidas2)表示右上角的标记物bjw2的质心坐标。
S4.4,对图像axiash进行处理得到标记物bjw3和标记物bjw4的质心坐标。
S4.4.1,对图像axiash进行连通区域标记,得到矩阵ltx。
采用matlab中的函数bwlabeln对图像axiash进行连通区域标记。
S4.4.2,根据矩阵ltx,得到图像axiash连通区域的总数量ltszx。
采用函数max(max(ltx))得到图像axiash中的连通区域的总数量ltszx。
S4.4.3,获得各连通区域面积的数组STATSx。
采用matlab中的函数regionprops(),获得各个连通区域的面积(即像素数)的数组STATSx。
S4.4.4,得到各连通区域的面积矩阵getmianjix(i)。
采用STATSs().Area将各个连通区域的面积存储到getmianjix(i)中,其中i的值为1~ltszx,分别对应第1~ltszx个连通区域的面积。
S4.4.5,查找面积最大的连通区域,并将该连通区域在矩阵ltx的位次值存储到矩阵zuidax。
采用matlab中的函数find()查找面积最大的连通区域。
S4.4.6,计算各个连通区域的质心,并将各个连通区域的质心的坐标存储到数组zhixinx,则zhixinx(zuidax)表示的标记物bjw3或标记物bjw4的质心坐标。
采用matlab中的函数regionprops()计算各个连通区域的质心。
S4.4.7,确定标记物bjw3或标记物bjw4的质心坐标。
如果zhixinx(zuidax)的列坐标大于0.5*cjn,则判定zhixinx(zuidax)表示右下角的标记物bjw3的质心坐标;否则判定zhixinx(zuidax)表示左下角的标记物bjw4的质心坐标。
S4.4.8,确定标记物bjw4或标记物bjw3的质心坐标。
将矩阵ltx中的值为zuidax的元素全部置0,并重复步骤S4.4.5-S4.4.6,得到标记物的质心坐标zhixinx(zuidax2);如果zhixinx(zuidax)表示右下角的标记物bjw3的质心坐标,则zhixinx(zuidax2)表示左下角的标记物bjw4的质心坐标;反之,如果zhixinx(zuidax)表示左下角的标记物bjw4的质心坐标,则zhixinx(zuidax2)表示右下角的标记物bjw3的质心坐标。
S5,将裁切图像a4进行投影变换,得到投影图像I'。
S5.1,根据裁切图像a4中的标记物和投影图像I'中的投影标记物获得投影变换公式:
DY=M*A (1);
其中,A为变换参数,M为投影图像I'中像素坐标;DY为裁切图像a4中对应的像素点坐标。
S5.1.1,设定裁切图像a4中标记物bjw1、标记物bjw2、标记物bjw3、标记物bjw4的质心坐标分别为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)。
S5.1.2,设定投影图像I'中对应的投影标记物分别为A'(yx1,yy1)、B'(yx2,yy2)、C'(yx3,yy3)、D'(yx4,yy4);且yx1的值为1,yy1的值为1,yx2的值为1,yy2的值为3000,yx3的值为3000,yy3的值为3000,yx4的值为3000,yy4的值为1;从而保证投影变换后的图像的大小为3000×3000。
并将投影图像中投影标记物的坐标作为输入,裁切图像a4中对应的像素点为输出。
S5.1.3,构造投影变换公式:
DY=M*A (1);
其中,变换参数A为:
A=[jza11;jza12;jza13;jza21;jza22;jza23;jza31;jza32] (2);
DY=[x1;y1;x2;y2;x3;y3;x4;y4] (3);
S5.1.4,将裁切图像a4的标记物bjw1、bjw2、bjw3、bjw4的质心坐标以及投影标记物A',B',C',D'的坐标代入公式(1)~(4),解算出变换参数A中元素的值,进而得到完善的投影变换公式。
S5.2,构造双三次插值公式:
S5.2.1,构造双三次插值函数:
其中,a取-0.5;
S5.2.2,根据双三次插值函数构造双三次插值公式;
其中,f(x,y)为像素点(x,y)的插值,f(xi,yi)为像素点(x,y)的4×4邻域点(xi,yi)的像素值,i,j=0,1,2,3;W(x-xi)为点(xi,yi)的像素值在x方向的权重;W(y-yi)为点(xi,yi)的像素值在y方向的权重。
S5.3,根据步骤S5.1计算投影图像I'中任一坐标点(i,j)对应在裁剪图像a4中的坐标(cjwzX,xjwzY)。
S5.4,裁剪图像a4距离像素点(cjwzX,xjwzY)最近的16个像素点的加权平均作为投影图像I'中坐标点(i,j)处的像素值。
S5.5,将步骤S5.4得到的投影图像I'中坐标点(i,j)处的像素值结合步骤S5.2得到投影图像I'中坐标点(i,j)处的实际像素值。
S5.6,重复步骤S5.3-S5.5,直至投影图像I'每个坐标点都得到实际像素值。
S6,对投影图像I'提取花盘。
S6.1,将投影图像I'转换为hsv图像,得到hsv图像的色调H、饱和度S和明度V。
采用matlab中的函数rgb2hsv()将该图像转换为hsv_f。
设定H=hsv_f(:,:,1)*255,S=hsv_f(:,:,2)*255,V=hsv_f(:,:,3)*255;从而分别得到图像的色调H、饱和度S和明度V。
S6.2,hsv图像进行二值化处理得到二值化图像hfl。
对hsv图像的每个像素点逐一进行判断,是否满足判断条件,如果满足该判断条件,则设定该点的值为1,否则为0,从而得到二值图像hfl。
所述判断条件为:
26<H(i,j)<34;43<S(i,j)<255;46<V(i,j)<255。
S6.3,对二值化图像hfl进行孔洞填充,得到图像a8。
采用matlab中的函数imfill(hfl,'holes')对二值图像hfl进行孔洞填充。
S6.4,对图像a8进行消噪得到图像a9。
采用matlab中的函数bwareaopen(a8,T)对图像a8进行小面积去除,其中,T表示对面积小于T个像素的区域进行删除,消除噪声干扰,保留唯一的花盘区域。
S6.5,采用图像a9对投影图像I'进行掩模得到图像a10,图像a10就是提取的花盘。
S7,对步骤S6提取的花盘采用纹理分割的方法提取圆盘。
S7.1,根据图像a10得到纹理图像wenli。
采用matlab中的函数entropyfilt()对图像a10进行处理,得到纹理图像wenli。
S7.2,将纹理图像wenli转换为二值图像EIM2。
S7.2.1,将纹理图像wenli转换为灰度图像Eim。
采用matlab中的函数mat2gray()将图像wenli转换为灰度图像Eim。
S7.2.2,将灰度图像Eim转换为二值图像EIM2。
采用matlab中的函数im2bw(Eim,0.7),以0.7作为阈值将灰度图像Eim转换为二值图像EIM2。
S7.3,获得二值图像EIM2中面积最大的连通区域,得到图像EIMzuida。
S7.3.1,对二值图像EIM2进行连通区域标记,得到矩阵Lerzhihua。
S7.3.2,统计矩阵Lerzhihua中的各个连通区域的面积,并保存在数组Sfenxi。
用matlab中的函数regionprops(Lerzhihua,'Area')统计矩阵Lerzhihua中的各个连通区域的面积。
S7.3.3,筛选连通区域的面积,保留了面积最大的连通区域,得到图像EIMzuida。
采用matlab中的函数bwareaopen(EIM2,max(Sfenxi.Area)-1),将二值图像EIM2中面积小于最大面积的连通区域的区域删除,保留了面积最大的连通区域,得到图像EIMzuida。
S7.4,对图像EIMzuida进行孔洞填充,得到图像EIMzuidatc。
采用matlab中的函数imfill(EIMzuida,'holes')对EIMzuida进行孔洞填充,得到图像EIMzuidatc。
S7.5,对图像EIMzuidatc进行开运算,得到图像EIMkai。
采用matlab中的函数imopen(EIMzuidatc,sejg)对EIMzuidatc进行开运算,得到图像EIMkai,其中,sejg=strel('disk',10),disk表示圆盘结构,sejg表示通过matlab中的构造函数strel()建立半径为10的圆盘。
S7.6,获得图像EIMkai中面积最大的连通区域,得到图像EIM5。
S7.7,对图像EIM5进行闭运算,得到图像EIM6,图像EIM6就是提取的圆盘图像。
采用matlab中的函数imclose(EIM5,sejgtb)对图像EIM5进行闭运算,得到图像EIM6,其中sejgtb=strel('disk',12),表示通过matlab中的构造函数strel()建立半径为12的圆盘。
S8,提取花盘的尖端轮廓。
S8.1,对图像a9的外部轮廓进行预处理得到图像a99。
S8.1.1,创建一个半径为5的圆盘结构sejghuapan。
采用sejghuapan=strel('disk',5),创建一个半径为5的圆盘结构sejghuapan。
S8.1.2,对图像a9记性开运算,得到图像a97。
采用matlab中的函数imopen(a9,sejghuapan)对图像a9进行开运算,得到图像a97。
S8.1.3,对图像a97进行闭运算,得到图像a98。
采用matlab中的函数imclose(a97,sejghuapan)对图像a97进行闭运算,得到图像a98。
S8.1.4,对图像a98进行孔洞填充,得到图像a99。
采用matlab中的孔洞填充函数imfill(a98,'holes')对图像a98进行孔洞填充,得到图像a99。
S8.2,提取花盘的轮廓点。
S8.2.1,查找图像a99外部轮廓点,并按照顺时针方向查找到的外部轮廓点的坐标依次存储到数组结构体boundary1中。
采用matlab中的语句:boundary1=bwboundaries(a99),对图像a99进行外部轮廓点的查找;
S8.2.2,得到轮廓点坐标数组boundary。
通过boundary=boundary1{1},将数组结构体boundary1中的轮廓点的坐标存储到数组boundary中。
S8.3,提取花盘的质心坐标点。
S8.3.1,对图像a99提取花盘的质心坐标并存储在数组zhixin。
采用matlab中的函数regionprops(a99,'Centroid')提取花盘的质心的坐标,并存储到zhixin;
S8.3.2,获得花盘质心的x坐标。
设定zhixinxzuobiao=floor(zhixin.Centroid(2)),得到花盘的质心的x坐标。
S8.3.3,获得花盘质心的y坐标。
设定zhixinyzuobiao=floor(zhixin.Centroid(1)),得到花盘的质心的y坐标。
S8.4,提取花盘的尖端点并顺时针依次连接构成尖端轮廓。
提取花盘的尖端点,并将提取尖端点顺时针依次连接构成尖端轮廓。具体操作为:
S8.4.1,计算花盘的质心到花盘的轮廓上的各个点的距离,并储存到数组bianjiezxjuli中。
S8.4.2,获得尖端点坐标的数组jianduan。
如果花盘的轮廓上的任一点Pqd的前20个轮廓点及后20轮廓点到质心的距离都小于点Pqd到质心的距离,则认定该点Pqd为尖端点,存储尖端点的坐标;遍历花盘轮廓点进行尖端点的查找,并依次存入花盘的尖端点坐标的数组jianduan中。
S8.4.3,将所有的尖端点依次连接,构成花盘的尖端轮廓,并将该尖端轮廓内的所有像素点置1,存储为jdlk,构成具有尖端轮廓的花盘。
S9,提取圆盘的尖端轮廓。
对图像EIM6按照步骤S8查找圆盘的尖端点,依次存入圆盘的尖端点的数组ypjianduan中,然后依次连接尖端点构成圆盘的尖端轮廓ypjdlk。
S9.1,提取圆盘的轮廓点。
S9.1.1,查找图像EIM6外部轮廓点,并按照顺时针方向查找到的外部轮廓点的坐标依次存储到数组结构体ypboundary1中。
采用matlab中的语句:ypboundary1=bwboundaries(EIM6),对图像EIM6进行外部轮廓点的查找。
S9.1.2,得到轮廓点坐标数组ypboundary。
通过ypboundary=ypboundary1{1},将数组结构体ypboundary1中的轮廓点的坐标存储到数组ypboundary中。
S9.2,提取圆盘的质心坐标点。
S9.2.1,对EIM6提取圆盘的质心坐标并存储在数组zhixiny。
采用matlab中的函数regionprops(EIM6,'Centroid')提取花盘的质心的坐标,并存储到zhixiny。
S9.2.2,获得圆盘质心的x坐标。
设定zhixinxzuobiao=floor(zhixiny.Centroid(2)),得到圆盘的质心的x坐标。
S9.2.3,获得花盘质心的y坐标。
设定zhixinyzuobiao=floor(zhixiny.Centroid(1)),得到圆盘的质心的y坐标。
S9.3,提取圆盘的尖端点并顺时针依次连接构成尖端轮廓。
S9.3.1,计算圆盘的质心到圆盘的轮廓上的各个点的距离,并储存到数组ypbianjiezxjuli中;
S9.3.2,获得尖端点坐标的数组ypjiandua。
如果圆盘的轮廓上的任一点Pyd的前20个轮廓点及后20轮廓点到质心的距离都小于点Pyd到质心的距离,则认定该点Pyd为尖端点,存储尖端点的坐标;遍历圆盘轮廓点进行尖端点的查找,并依次存入圆盘的尖端点坐标的数组ypjianduan中。
S9.3.3,将所有的尖端点依次连接,构成圆盘的尖端轮廓,并将该尖端轮廓内的所有像素点置1,存储为ypjdlk,构成具有尖端轮廓的圆盘。
S10,等角度采样法提取花盘直径。
计算花盘的平均直径时,需要依据一定的角度θ测量n次(如图22所示),求平均值,角度θ与测量次数n的关系为:
也就是说:当n=2时,θ为90°,对花盘的直径的采样原则是以90°等角度采样,水平方向的直径、旋转90°后的竖直方向的直径,以两者的平均值作为花盘的直径;
当n=4时,θ为45°,此时以45°等角度采样,在水平、竖直、倾斜方向共采集四次;
当n=8、16、32、64、128、180时,采样角度θ分别为22.5°、11.25°、5.625°、2.8125°、1.40625°、1°。
而具体获得的过程为:
S10.1:在花盘的尖端轮廓中查找起点ps。
查找构成花盘的尖端轮廓中的边界点的坐标,将边界点中行坐标与花盘质心的行坐标相同,且列坐标大于花盘质心的列坐标的边界点提取出来作为起点ps并将起点ps的坐标存储在数组Sps中。
S10.2:花盘轮廓中查找与ps对应的花盘直径上的另一边界点pe。
将起点ps连接质心点Cen并延长,该延长线与花盘的尖端轮廓的交点则为pe,并将边界点pe的坐标存储在数组Spe中。
S10.3:计算线段pspe的长度,并将线段pspe的长度存储到数组Slen中。
S10.4:沿逆时针方向查找尖端轮廓的边界点pj1,使得向量Cenps和Cenpj1的夹角为θ。
S10.5:根据S10.2得到与边界点pj1对应的花盘直径上的另一边界点pe1,并将边界点pj1的坐标存储到数组Sps中,边界点pe1的坐标存储到Spe中,将线段pj1pe1的长度存储到数组Slen中。
S10.6:重复S10.4-S10.5,依次查找到点pj2、pj3…pj(n-1),使得向量Cenps和Cenpj2、Cenpj3…Cenpj(n-1)的夹角分别为2θ、3θ…(n-1)θ;分别得到与pj2、pj3…pj(n-1)对应的花盘直径上的另一边界点pe2、pe3…pe(n-1);将pj2、pj3…pj(n-1)的坐标存储到数组Sps中,将pe2、pe3…pe(n-1)的坐标存储到数组Spe中;将线段pj2pe2、pj3pe3…pj(n-1)pe(n-1)的长度存储到数组Slen中。
S10.7:计算数组Slen的各线段的均值dia,并作为花盘直径的平均值。
S11:等角度采样法提取圆盘直径。
计算圆盘的平均直径时,需要依据一定的角度θ测量n次(如图22所示),求平均值,角度θ与测量次数n的关系为:
也就是说:当n=2时,θ为90°,对圆盘的直径的采样原则是以90°等角度采样,水平方向的直径、旋转90°后的竖直方向的直径,以两者的平均值作为圆盘的直径;
当n=4时,θ为45°,此时以45°等角度采样,在水平、竖直、倾斜方向共采集四次;
当n=8、16、32、64、128、180时,采样角度θ分别为22.5°、11.25°、5.625°、2.8125°、1.40625°、1°。
而具体获得的过程为:
S11.1:在圆盘的尖端轮廓中查找起点psy。
查找构成圆盘的尖端轮廓中的边界点的坐标,将边界点中行坐标与圆盘质心的行坐标相同,且列坐标大于圆盘质心的列坐标的边界点提取出来作为起点ps并将起点psy的坐标存储在数组Spsy中。
S11.2:圆盘轮廓中查找与psy对应的圆盘直径上的另一边界点pey。
将起点psy连接质心点Ceny并延长,该延长线与圆盘的尖端轮廓的交点则为pey,并将边界点pey的坐标存储在数组Spey中。
S11.3:计算线段psypey的长度,并将线段psypey的长度存储到数组Sleny中。
S11.4:沿逆时针方向查找尖端轮廓的边界点pj1y,使得向量Cenpsy和Cenpj1y的夹角为θ。
S11.5:根据S11.2得到与边界点pj1y对应的圆盘直径上的另一边界点pe1y,并将边界点pj1y的坐标存储到数组Spsy中,边界点pe1y的坐标存储到Spey中,将线段pj1ype1y的长度存储到数组Sleny中。
S11.6:重复S11.4-S11.5,依次查找到点pj2y、pj3y…pj(n-1)y,使得向量Cenpsy和Cenpj2y、Cenpj3y,…,Cenpj(n-1)y的夹角分别为2θ、3θ…(n-1)θ;分别得到与pj2y、pj3y,…,pj(n-1)y对应的圆盘直径上的另一边界点pe2y、pe3y,…,pe(n-1)y;将pj2y、pj3y,…,pj(n-1)y的坐标存储到数组Spsy中,将pe2y、pe3y,…,pe(n-1)y的坐标存储到数组Spey中;将线段pj2ype2y、pj3ype3y,…,pj(n-1)ype(n-1)y的长度存储到数组Sleny中。
S11.7:计算数组Sleny的各线段的均值diay,并作为圆盘直径的平均值。
S12:构造直径预测模型。
所述直径包括花盘直径和圆盘直径;
S12.1:构造花盘尖端轮廓的平均直径预测模型。
HTD=2.813+1.051×HTD2;
其中HTD2表示花盘的尖端轮廓的2次采样测量的平均直径,HTD表示花盘的尖端轮廓的平均直径。
S12.2:构造圆盘尖端轮廓的平均直径预测模型;
DTD=-0.991+1.024×DTD2;
其中DTD2表示圆盘的尖端轮廓的2次采样测量的平均直径,DTD表示圆盘的尖端轮廓的平均直径。
S13:计算花盘的几何参数
所述几何参数包括花盘的面积、周长、等效直径、拟合椭圆的长轴和短轴长度;
S13.1:计算花盘的尖端轮廓所包围区域的面积。
对图像jdlk采用matlab中的regionprops()函数,属性值采用'Area',计算所标记区域的像素总个数,得到花盘尖端轮廓的面积。
S13.2:计算花盘的尖端轮廓的周长;
对图像jdlk采用matlab中的regionprops()函数,属性值采用'Perimeter',得到花盘尖端轮廓的周长。
S13.3:计算花盘尖端轮廓的等效直径。
对图像jdlk采用matlab中的regionprops()函数,属性值采用'EquivDiameter',计算与尖端轮廓所包围区域具有相同面积的圆的直径,得到花盘的尖端轮廓的等效直径。
S13.4:计算花盘的尖端轮廓所包围区域的长轴长度。
对图像jdlk采用matlab中的regionprops()函数,属性值采用'MajorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的长轴长度,得到花盘的尖端轮廓所包围区域的长轴长度。
S13.5:计算花盘的尖端轮廓所包围区域的短轴长度。
对图像jdlk采用matlab中的regionprops()函数,属性值采用'MinorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的短轴长度,得到花盘的尖端轮廓所包围区域的短轴长度。
S14:计算圆盘的几何参数。
所述几何参数包括圆盘的面积、周长、等效直径、拟合椭圆的长轴和短轴长度。
S14.1:计算圆盘的尖端轮廓所包围区域的面积。
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'Area',计算所标记区域的像素总个数,得到圆盘尖端轮廓的面积。
S14.2:计算圆盘的尖端轮廓的周长。
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'Perimeter',得到圆盘尖端轮廓的周长。
S14.3:计算圆盘尖端轮廓的等效直径。
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'EquivDiameter',计算与尖端轮廓所包围区域具有相同面积的圆的直径,得到圆盘的尖端轮廓的等效直径。
S14.4:计算圆盘的尖端轮廓所包围区域的长轴长度。
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'MajorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的长轴长度,得到圆盘的尖端轮廓所包围区域的长轴长度。
S14.5:计算圆盘的尖端轮廓所包围区域的短轴长度。
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'MinorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的短轴长度,得到圆盘的尖端轮廓所包围区域的短轴长度。
本发明设计的图像采集装置,包括背景板1、遮挡板4、三脚架和相机;所述背景板1为白色泡沫板,在白色泡沫板的上部设置有狭缝2,所述狭缝2,由矩形狭缝和正六边形狭缝组成,矩形狭缝和正六边形狭缝位于同一直线上且正六边形狭缝的质心与背景板1的质心重合;在背景板1的四角均设置有一个黑色标记物3,四个黑色标记物3的质心构成正方形,且正方形的质心与背景板1的质心重合,且正方形的四条边分别与背景板1的四条边平行。
所述遮挡板4,在左右两侧均粘贴有双面胶5,并通过双面胶5粘贴在背景板1的矩形狭缝上将矩形狭缝遮挡。
所述三脚架,包括伸缩支脚、若干调高套筒、球形云台、抓手、锁扣、横杆;最下方的调高套筒通过锁扣与伸缩支脚连接,调高套筒之间通过锁扣连接,横杆通过球形云台与最上方的调高套筒连接,抓手对称安装在横杆两端,用于夹紧背景板。
将向日葵的花梗通过矩形狭缝到达正六边形狭缝中,此时向日葵的花盘则位于背景板的质心;然后使用带有双面胶带的遮挡板,粘贴在背景板的矩形狭缝上,并用三脚架上的抓手固定背景板,并使相机与向日葵花盘大***于相同的高度,距离保持在1~2m,背景板上的四个黑色标记物尽量占据相机视场的边缘;确保图像的上边界位于背景板的上边界和上部的两个圆形标记物之间,图像的下边界位于背景板的下边界和下部的两个圆形标记物之间;每个向日葵的花盘重复拍摄三个图像。
本发明通过特制的背景板和遮挡板在现场非破坏性地采集向日葵图像,自动进行图像的投影变换,通过查找花盘的各个舌状小花的尖端,采用本发明所提出的尖端包裹法确立花盘的范围,通过测量向日葵花盘的多个不同径向的直径,确立向日葵花盘的直径。通过形态学的开运算和闭运算等操作,确立圆盘的区域,并计算圆盘的直径。推荐向日葵花盘直径的最佳测量数量是32。研究表明,本发明所提出的图像处理方法测量精度高、快速快、对尺度变化不敏感的优点。为研究传粉媒介相互作用提供了技术支持,也适用于其他植株的花朵测量。
本发明对不同种类、不同大小的向日葵花盘进行研究,所提出方法的准确性高,对尺度变化不敏感。采用本发明方法,具有下述有益效果:(1)本发明所采用的三脚架、背景板和平板电脑等具有一定的便携性,可以在现场容易地使用,并且可提供即时输出。(2)只需获取1个向日葵花盘图像就能进行快速无损测量,人工工作量小。(3)图像处理方法快捷有效,能精确的计算花盘和圆盘的直径,以及计算花盘、圆盘的面积、周长、等效直径、拟合椭圆的尺寸、包围盒的尺寸、充实度和圆形度等几何参数;面积、周长、充实度和圆度等参数有助于理解花卉形态。(4)采集和处理的图像可以存档供以后研究用。(5)自动化程度高,无需人工干预。(6)利用本发明的研究成果作为衡量向日葵的花盘、圆盘等组件和传粉媒介(蜜蜂等)访问率之间相关性的工具,将产生值得研究的有用关系;为研究传粉媒介相互作用提供了技术支撑。(7)通过调整分割方法和所采集的图像,本发明所提出的图像采集和处理方法也可以很容易地扩展应用到其它其菊科植株的花朵测量与分析。(8)从生产农业的角度来看,本发明的图像处理方法具有用于计算花盘中种子数量的潜力,后续研究可用于种子产量估计、花盘尺寸与产油量之间的关系等课题的研究。总之,本发明具有很高的实用价值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明图像采集装置中背景板及遮挡板示意图,1-白色背景板,2-狭缝,3-黑色圆形标记物,4-遮挡板,5-双面胶带;
图2为本发明背景板及遮挡板的尺寸图。
图3为本发明图像处理流程图。
图4为本发明向日葵的花盘的原始RGB图像。
图5为本发明向日葵的花盘的二值化图像。
图6为本发明圆形标记物检测示意图。
图7为本发明基于四组对应点的投影变换原理图。
图8为本发明原始图像与目标图像之间的对应点示意图。
图9为本发明经过投影变换的图像。
图10为本发明以二值图像显示提取的花盘。
图11为本发明对以二值图像显示提取的花盘进行孔洞填充和小面积去除后图像。
图12为本发明通过掩模得到花盘区域的彩色图像。
图13为本发明花盘的纹理图像。
图14为本发明花盘的纹理图像二值化图像。
图15为本发明保留面积最大的连通区域图。
图16为本发明对面积最大的连通区域进行孔洞填充后图像。
图17为本发明对面积最大的连通区域开运算后图像。
图18为保留最大连通区域并进行闭运算后图像。
图19为本发明图像花盘的外部轮廓点。
图20为本发明尖端包裹法构建花盘的尖端轮廓;(a)花盘的尖端点以各个圆圈表示;(b)带有尖端轮廓的花盘图像。
图21为本发明花盘的凸包线和凸包。(a)花盘的凸包点连线;(b)花盘的凸包所包围区域
图22为本发明花盘和圆盘直径的测量示意图。
图23为不同采样次数的直径平均值和绝对误差。(a)不同采样次数的花盘原始轮廓的平均直径;(b)不同采样次数的花盘尖端轮廓的平均直径;(c)不同采样次数的花盘原始轮廓的平均直径的绝对误差;(d)不同采样次数的花盘尖端轮廓的平均直径的绝对误差;(e)不同采样次数的圆盘原始轮廓的平均直径的绝对误差;(f)不同采样次数的圆盘尖端轮廓的平均直径的绝对误差。
图24为本发明基于375个样品的平均值和标准偏差值对比图,(a)花盘原始轮廓和圆盘原始轮廓的平均直径;(b)花盘尖端轮廓和圆盘尖端轮廓的的平均直径。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种向日葵花盘尺寸测量方法,如图3所示,步骤如下:
S1,获取向日葵花盘原始RGB图像a1,如图4所示。
本发明设计的图像采集装置,如图1-2所示,包括背景板1、遮挡板4、三脚架和相机;所述背景板1为白色泡沫板,在白色泡沫板的上部设置有狭缝2,所述狭缝2,由矩形狭缝和正六边形狭缝组成,矩形狭缝和正六边形狭缝位于同一直线上且正六边形狭缝的质心与背景板1的质心重合;在背景板1的四角均设置有一个黑色标记物3,四个黑色标记物3的质心构成正方形,且正方形的质心与背景板1的质心重合,且正方形的四条边分别与背景板1的四条边平行。
所述遮挡板4,在左右两侧均粘贴有双面胶5,并通过双面胶5粘贴在背景板1的矩形狭缝上将矩形狭缝遮挡。
所述三脚架,包括伸缩支脚、若干调高套筒、球形云台、抓手、锁扣、横杆;最下方的调高套筒通过锁扣与伸缩支脚连接,调高套筒之间通过锁扣连接,横杆通过球形云台与最上方的调高套筒连接,抓手对称安装在横杆两端,用于夹紧背景板。
将向日葵的花梗通过矩形狭缝到达正六边形狭缝中,此时向日葵的花盘则位于背景板的质心;然后使用带有双面胶带的遮挡板,粘贴在背景板的矩形狭缝上,并用三脚架上的抓手固定背景板,并使相机与向日葵花盘大***于相同的高度,距离保持在1~2m,背景板上的四个黑色标记物尽量占据相机视场的边缘;确保图像的上边界位于背景板的上边界和上部的两个圆形标记物之间,图像的下边界位于背景板的下边界和下部的两个圆形标记物之间;每个向日葵的花盘重复拍摄三个图像。相关装置的搭建及图像的采集,单人即可完成,相对传统方式节省了人力。
S2,将原始图像a1进行二值化处理得到二值化图像a3,如图5所示;
S2.1,将原始图像a1转换为灰度图像a2;
采用matlab软件中的函数rgb2gray(),将原始图像a1转换为灰度图像a2;
S2.2,将灰度图像a2转换为二值化图像a3;
采用matlab软件中的函数graythresh(),提取将灰度图像a2转换为二值图像所需的阈值;结合阈值,采用matlab软件中的函数im2bw(),将灰度图像a2转换为二值化图像a3;
S3,将二值化图像a3进行图像裁切得到裁切图像a4;
采用matlab中的求和函数sum(),从左向右统计二值化图像a3的每列的像素之和,得到数组gelie,该数组的大小与二值化图像a3的列数相同,并且存储二值化图像a3的每列的像素和;通过matlab中的函数size()获取二值化图像a3的大小,并设定图像共有m行、n列;
从图像的最左侧的第1列开始,每次列数加1,如果从第zuoqishilie-39列开始直到第zuoqishilie列,这连续出现的40个列的所有像素值之和大于40*m-120,则认定第zuoqishilie列为左侧起始列(第zuoqishilie-39列到第zuoqishilie列的像素大都为白色,可以判定该区域的左侧为干扰物,右侧为背景板,可将第zuoqishilie列左侧的区域裁减掉)。
从图像的最右侧的第1列开始,每次列数减1,直到第youzhongzhilie列,如果从第youzhongzhilie列开始直到第youzhongzhilie-39列,这连续出现的40个列的像素值之和大于40*m-120,则认定第youzhongzhilie列为右侧终止列(第youzhongzhilie-39列到第youzhongzhilie列的像素大都为白色,可以判定该区域的左侧为背景板,右侧为干扰物,可将第youzhongzhilie列右侧的区域裁减掉)。
将图像a3的第zuoqishilie列到第youzhongzhilie列范围内的像素保存到裁切图像a4,a4即为二值化图像a3的剪裁图像,a4保存的是感兴趣的四个黑色圆形标记物范围内的二值图像区域。
将图像a1的第zuoqishilie列到第youzhongzhilie列范围内的像素保存到argbcaijian,argbcaijian即为原始图像a1的剪裁图像,argbcaijian保存的是感兴趣的四个黑色圆形标记物范围内的彩色图像区域。
S4,提取裁切图像a4中四个标记物的质心坐标.
设定左上角的标记物为bjw1、右上角的标记物为bjw2、右下角的标记物为bjw3、左下角的标记物为bjw4,如图6所示。
S4.1,获取裁切图像a4的大小并设定裁切图像a4有cjm行、cjn列。
通过matlab中的函数size()获取裁切图像a4的大小。
S4.2,将裁切图像a4分割为图像ashangsh和图像axiash。
将裁切图像a4中的1~cjm*0.2行的像素值存储到图像ashangsh中,将裁切图像a4中的cjm*0.8~cjm行的像素值存储到图像axiash中。
如果cjm*0.2、cjm*0.8不是整数的话,采用matlab中的取整函数floor()进行取整操作。
S4.3,对图像ashangsh进行处理得到标记物bjw1和标记物bjw2的质心坐标。
S4.3.1,对图像ashangsh进行连通区域标记,得到矩阵lts。
采用matlab中的函数bwlabeln对图像ashangsh进行连通区域标记。
S4.3.2,根据矩阵lts,得到图像ashangsh连通区域的总数量ltszs。
采用函数max(max(lts))得到图像ashangsh中的连通区域的总数量ltszs。
S4.3.3,获得各连通区域面积的数组STATSs。
采用matlab中的函数regionprops(),获得各个连通区域的面积(即像素数)的数组STATSs。
S4.3.4,得到各连通区域的面积矩阵getmianjis(i)。
采用STATSs().Area将各个连通区域的面积存储到getmianjis(i)中,其中i的值为1~ltszs,分别对应第1~ltszs个连通区域的面积。
S4.3.5,查找面积最大的连通区域,并将该连通区域在矩阵lts的位次值存储到矩阵zuidas。
采用matlab中的函数find()查找面积最大的连通区域。
S4.3.6,计算各个连通区域的质心,并将各个连通区域的质心的坐标存储到数组zhixins,则zhixins(zuidas)表示的标记物bjw1或标记物bjw2的质心坐标。
采用matlab中的函数regionprops()计算各个连通区域的质心。
S4.3.7,确定标记物bjw1或标记物bjw2的质心坐标。
如果zhixins(zuidas)的列坐标大于0.5*cjn,则判定zhixins(zuidas)表示右上角的标记物bjw2的质心坐标,否则判定zhixins(zuidas)表示左上角的标记物bjw1的质心坐标。
S4.3.8,确定标记物bjw2或标记物bjw1的质心坐标。
将矩阵lts中的值为zuidas的元素全部置0,并重复步骤S4.3.5-S4.3.6,得到标记物的质心坐标zhixins(zuidas2);如果zhixins(zuidas)表示右上角的标记物bjw2的质心坐标,则zhixins(zuidas2)表示左上角的标记物bjw1的质心坐标;反之,如果zhixins(zuidas)表示左上角的标记物bjw1的质心坐标,则zhixins(zuidas2)表示右上角的标记物bjw2的质心坐标。
S4.4,对图像axiash进行处理得到标记物bjw3和标记物bjw4的质心坐标。
S4.4.1,对图像axiash进行连通区域标记,得到矩阵ltx。
采用matlab中的函数bwlabeln对图像axiash进行连通区域标记。
S4.4.2,根据矩阵ltx,得到图像axiash连通区域的总数量ltszx。
采用函数max(max(ltx))得到图像axiash中的连通区域的总数量ltszx。
S4.4.3,获得各连通区域面积的数组STATSx。
采用matlab中的函数regionprops(),获得各个连通区域的面积(即像素数)的数组STATSx。
S4.4.4,得到各连通区域的面积矩阵getmianjix(i)。
采用STATSs().Area将各个连通区域的面积存储到getmianjix(i)中,其中i的值为1~ltszx,分别对应第1~ltszx个连通区域的面积。
S4.4.5,查找面积最大的连通区域,并将该连通区域在矩阵ltx的位次值存储到矩阵zuidax。
采用matlab中的函数find()查找面积最大的连通区域。
S4.4.6,计算各个连通区域的质心,并将各个连通区域的质心的坐标存储到数组zhixinx,则zhixinx(zuidax)表示的标记物bjw3或标记物bjw4的质心坐标。
采用matlab中的函数regionprops()计算各个连通区域的质心。
S4.4.7,确定标记物bjw3或标记物bjw4的质心坐标。
如果zhixinx(zuidax)的列坐标大于0.5*cjn,则判定zhixinx(zuidax)表示右下角的标记物bjw3的质心坐标;否则判定zhixinx(zuidax)表示左下角的标记物bjw4的质心坐标。
S4.4.8,确定标记物bjw4或标记物bjw3的质心坐标。
将矩阵ltx中的值为zuidax的元素全部置0,并重复步骤S4.4.5-S4.4.6,得到标记物的质心坐标zhixinx(zuidax2);如果zhixinx(zuidax)表示右下角的标记物bjw3的质心坐标,则zhixinx(zuidax2)表示左下角的标记物bjw4的质心坐标;反之,如果zhixinx(zuidax)表示左下角的标记物bjw4的质心坐标,则zhixinx(zuidax2)表示右下角的标记物bjw3的质心坐标。
这4个圆形标记物在本发明中起到标记和参照的作用,通过投影变换来校正图像的失真,以及为计算向日葵的花盘等的尺寸提供参照比例。
S5,将裁切图像a4进行投影变换,得到投影图像I',如图9所示,而投影变换的原理如图7-8所示。
S5.1,根据裁切图像a4中的标记物和投影图像I'中的投影标记物获得投影变换公式:
DY=M*A (1);
其中,A为变换参数,M为投影图像I'中像素坐标;DY为裁切图像a4中对应的像素点坐标。
S5.1.1,设定裁切图像a4中标记物bjw1、标记物bjw2、标记物bjw3、标记物bjw4的质心坐标分别为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)。
S5.1.2,设定投影图像I'中对应的投影标记物分别为A'(yx1,yy1)、B'(yx2,yy2)、C'(yx3,yy3)、D'(yx4,yy4);且yx1的值为1,yy1的值为1,yx2的值为1,yy2的值为3000,yx3的值为3000,yy3的值为3000,yx4的值为3000,yy4的值为1;从而保证投影变换后的图像的大小为3000×3000。
并将投影图像中投影标记物的坐标作为输入,裁切图像a4中对应的像素点为输出。
S5.1.3,构造投影变换公式:
DY=M*A (1);
其中,变换参数A为:
A=[jza11;jza12;jza13;jza21;jza22;jza23;jza31;jza32] (2);DY=[x1;y1;x2;y2;x3;y3;x4;y4] (3);
S5.1.4,将裁切图像a4的标记物bjw1、bjw2、bjw3、bjw4的质心坐标以及投影标记物A',B',C',D'的坐标代入公式(1)~(4),解算出变换参数A中元素的值,进而得到完善的投影变换公式。
通过投影变换,减小了相机的畸变,将图像的各个像素点恢复到较为理想的位置。
S5.2,构造双三次插值公式:
S5.2.1,构造双三次插值函数:
其中,a取-0.5;
S5.2.2,根据双三次插值函数构造双三次插值公式;
其中,f(x,y)为像素点(x,y)的插值,f(xi,yi)为像素点(x,y)的4×4邻域点(xi,yi)的像素值,i,j=0,1,2,3;W(x-xi)为点(xi,yi)的像素值在x方向的权重;W(y-yi)为点(xi,yi)的像素值在y方向的权重。
S5.3,根据步骤S5.1计算投影图像I'中任一坐标点(i,j)对应在裁剪图像a4中的坐标(cjwzX,xjwzY)。
S5.4,裁剪图像a4距离像素点(cjwzX,xjwzY)最近的16个像素点的加权平均作为投影图像I'中坐标点(i,j)处的像素值。
S5.5,将步骤S5.4得到的投影图像I'中坐标点(i,j)处的像素值结合步骤S5.2得到投影图像I'中坐标点(i,j)处的实际像素值。
S5.6,重复步骤S5.3-S5.5,直至投影图像I'每个坐标点都得到实际像素值。
S6,对投影图像I'提取花盘。
S6.1,将投影图像I'转换为hsv图像,得到hsv图像的色调H、饱和度S和明度V。
采用matlab中的函数rgb2hsv()将该图像转换为hsv_f。
设定H=hsv_f(:,:,1)*255,S=hsv_f(:,:,2)*255,V=hsv_f(:,:,3)*255;从而分别得到图像的色调H、饱和度S和明度V。
S6.2,hsv图像进行二值化处理得到二值化图像hfl,如图10所示。
对hsv图像的每个像素点逐一进行判断,是否满足判断条件,如果满足该判断条件,则设定该点的值为1,否则为0,从而得到二值图像hfl。
所述判断条件为:
26<H(i,j)<34;43<S(i,j)<255;46<V(i,j)<255。
S6.3,对二值化图像hfl进行孔洞填充,得到图像a8。
采用matlab中的函数imfill(hfl,'holes')对二值图像hfl进行孔洞填充。
S6.4,对图像a8进行消噪得到图像a9,如图11所示。
采用matlab中的函数bwareaopen(a8,T)对图像a8进行小面积去除,其中,T表示对面积小于T个像素的区域进行删除,消除噪声干扰,保留唯一的花盘区域。
S6.5,采用图像a9对投影图像I'进行掩模得到图像a10,图像a10就是提取的花盘,如图12所示。
S7,对步骤S6提取的花盘采用纹理分割的方法提取圆盘。
S7.1,根据图像a10得到纹理图像wenli,如图13所示。
采用matlab中的函数entropyfilt()对图像a10进行处理,得到纹理图像wenli。
S7.2,将纹理图像wenli转换为二值图像EIM2,如图14所示。
S7.2.1,将纹理图像wenli转换为灰度图像Eim。
采用matlab中的函数mat2gray()将图像wenli转换为灰度图像Eim。
S7.2.2,将灰度图像Eim转换为二值图像EIM2。
采用matlab中的函数im2bw(Eim,0.7),以0.7作为阈值将灰度图像Eim转换为二值图像EIM2。
S7.3,获得二值图像EIM2中面积最大的连通区域,得到图像EIMzuida,如图15所示。
S7.3.1,对二值图像EIM2进行连通区域标记,得到矩阵Lerzhihua。
S7.3.2,统计矩阵Lerzhihua中的各个连通区域的面积,并保存在数组Sfenxi。
用matlab中的函数regionprops(Lerzhihua,'Area')统计矩阵Lerzhihua中的各个连通区域的面积。
S7.3.3,筛选连通区域的面积,保留了面积最大的连通区域,得到图像EIMzuida,如图15所示。
采用matlab中的函数bwareaopen(EIM2,max(Sfenxi.Area)-1),将二值图像EIM2中面积小于最大面积的连通区域的区域删除,保留了面积最大的连通区域,得到图像EIMzuida。
S7.4,对图像EIMzuida进行孔洞填充,得到图像EIMzuidatc,如图16所示。
采用matlab中的函数imfill(EIMzuida,'holes')对EIMzuida进行孔洞填充,得到图像EIMzuidatc。
S7.5,对图像EIMzuidatc进行开运算,得到图像EIMkai,如图17所示。
采用matlab中的函数imopen(EIMzuidatc,sejg)对EIMzuidatc进行开运算,得到图像EIMkai,其中,sejg=strel('disk',10),disk表示圆盘结构,sejg表示通过matlab中的构造函数strel()建立半径为10的圆盘。
S7.6,获得图像EIMkai中面积最大的连通区域,得到图像EIM5。
S7.7,对图像EIM5进行闭运算,得到图像EIM6,图像EIM6就是提取的圆盘图像,如图18所示。
采用matlab中的函数imclose(EIM5,sejgtb)对图像EIM5进行闭运算,得到图像EIM6,其中sejgtb=strel('disk',12),表示通过matlab中的构造函数strel()建立半径为12的圆盘。
S8,提取花盘的尖端轮廓。
S8.1,对图像a9的外部轮廓进行预处理得到图像a99。
S8.1.1,创建一个半径为5的圆盘结构sejghuapan。
采用sejghuapan=strel('disk',5),创建一个半径为5的圆盘结构sejghuapan。
S8.1.2,对图像a9记性开运算,得到图像a97。
采用matlab中的函数imopen(a9,sejghuapan)对图像a9进行开运算,得到图像a97。
S8.1.3,对图像a97进行闭运算,得到图像a98。
采用matlab中的函数imclose(a97,sejghuapan)对图像a97进行闭运算,得到图像a98。
S8.1.4,对图像a98进行孔洞填充,得到图像a99。
采用matlab中的孔洞填充函数imfill(a98,'holes')对图像a98进行孔洞填充,得到图像a99。
S8.2,提取花盘的轮廓点,如图19所示。
S8.2.1,查找图像a99外部轮廓点,并按照顺时针方向查找到的外部轮廓点的坐标依次存储到数组结构体boundary1中。
采用matlab中的语句:boundary1=bwboundaries(a99),对图像a99进行外部轮廓点的查找;
S8.2.2,得到轮廓点坐标数组boundary。
通过boundary=boundary1{1},将数组结构体boundary1中的轮廓点的坐标存储到数组boundary中。
S8.3,提取花盘的质心坐标点。
S8.3.1,对图像a99提取花盘的质心坐标并存储在数组zhixin。
采用matlab中的函数regionprops(a99,'Centroid')提取花盘的质心的坐标,并存储到zhixin;
S8.3.2,获得花盘质心的x坐标。
设定zhixinxzuobiao=floor(zhixin.Centroid(2)),得到花盘的质心的x坐标。
S8.3.3,获得花盘质心的y坐标。
设定zhixinyzuobiao=floor(zhixin.Centroid(1)),得到花盘的质心的y坐标。
S8.4,提取花盘的尖端点并顺时针依次连接构成尖端轮廓,如图20所示。
S8.4.1,计算花盘的质心到花盘的轮廓上的各个点的距离,并储存到数组bianjiezxjuli中。
S8.4.2,获得尖端点坐标的数组jianduan。
如果花盘的轮廓上的任一点Pqd的前20个轮廓点及后20轮廓点到质心的距离都小于点Pqd到质心的距离,则认定该点Pqd为尖端点,存储尖端点的坐标;遍历花盘轮廓点进行尖端点的查找,并依次存入花盘的尖端点坐标的数组jianduan中。
S8.4.3,将所有的尖端点依次连接,构成花盘的尖端轮廓,并将该尖端轮廓内的所有像素点置1,存储为jdlk,构成具有尖端轮廓的花盘。
S9,提取圆盘的尖端轮廓。
对图像EIM6按照步骤S8查找圆盘的尖端点,依次存入圆盘的尖端点的数组ypjianduan中,然后依次连接尖端点构成圆盘的尖端轮廓ypjdlk。
S9.1,提取圆盘的轮廓点。
S9.1.1,查找图像EIM6外部轮廓点,并按照顺时针方向查找到的外部轮廓点的坐标依次存储到数组结构体ypboundary1中。
采用matlab中的语句:ypboundary1=bwboundaries(EIM6),对图像EIM6进行外部轮廓点的查找。
S9.1.2,得到轮廓点坐标数组ypboundary。
通过ypboundary=ypboundary1{1},将数组结构体ypboundary1中的轮廓点的坐标存储到数组ypboundary中。
S9.2,提取圆盘的质心坐标点。
S9.2.1,对EIM6提取圆盘的质心坐标并存储在数组zhixiny。
采用matlab中的函数regionprops(EIM6,'Centroid')提取花盘的质心的坐标,并存储到zhixiny。
S9.2.2,获得圆盘质心的x坐标。
设定zhixinxzuobiao=floor(zhixiny.Centroid(2)),得到圆盘的质心的x坐标。
S9.2.3,获得花盘质心的y坐标。
设定zhixinyzuobiao=floor(zhixiny.Centroid(1)),得到圆盘的质心的y坐标。
S9.3,提取圆盘的尖端点并顺时针依次连接构成尖端轮廓。
S9.3.1,计算圆盘的质心到圆盘的轮廓上的各个点的距离,并储存到数组ypbianjiezxjuli中;
S9.3.2,获得尖端点坐标的数组ypjiandua。
如果圆盘的轮廓上的任一点Pyd的前20个轮廓点及后20轮廓点到质心的距离都小于点Pyd到质心的距离,则认定该点Pyd为尖端点,存储尖端点的坐标;遍历圆盘轮廓点进行尖端点的查找,并依次存入圆盘的尖端点坐标的数组ypjianduan中。
S9.3.3,将所有的尖端点依次连接,构成圆盘的尖端轮廓,并将该尖端轮廓内的所有像素点置1,存储为ypjdlk,构成具有尖端轮廓的圆盘。
采用matlab中的函数regionprops(bwlabel(a99),'ConvexHull')提取花盘的凸包,并将表示花盘的凸包点的坐标存储到结构体数组hptbstats,通过hptn=hptbstats.ConvexHull,实现花盘的凸包点存储到数组hptn。将花盘的凸包点的数组hptn中的凸包点依次连接,如图21(a)所示。将凸包线所包围的区域全部置1,并存储到hptk,如图21(b)所示。
采用同样的方法查找圆盘的凸包点,将圆盘的凸包点存储到数组yptn,构造圆盘的凸包轮廓yptk。
S10,等角度采样法提取花盘直径,测量原理图如图22所示。
计算花盘的平均直径时,需要依据一定的角度θ测量n次(如图22所示),求平均值,角度θ与测量次数n的关系为:
也就是说:当n=2时,θ为90°,对花盘的直径的采样原则是以90°等角度采样,水平方向的直径、旋转90°后的竖直方向的直径,以两者的平均值作为花盘的直径;
当n=4时,θ为45°,此时以45°等角度采样,在水平、竖直、倾斜方向共采集四次;
当n=8、16、32、64、128、180时,采样角度θ分别为22.5°、11.25°、5.625°、2.8125°、1.40625°、1°。
而具体获得的过程为:
S10.1:在花盘的尖端轮廓中查找起点ps。
查找构成花盘的尖端轮廓中的边界点的坐标,将边界点中行坐标与花盘质心的行坐标相同,且列坐标大于花盘质心的列坐标的边界点提取出来作为起点ps并将起点ps的坐标存储在数组Sps中。
S10.2:花盘轮廓中查找与ps对应的花盘直径上的另一边界点pe。
将起点ps连接质心点Cen并延长,该延长线与花盘的尖端轮廓的交点则为pe,并将边界点pe的坐标存储在数组Spe中。
S10.3:计算线段pspe的长度,并将线段pspe的长度存储到数组Slen中。
S10.4:沿逆时针方向查找尖端轮廓的边界点pj1,使得向量Cenps和Cenpj1的夹角为θ。
S10.5:根据S10.2得到与边界点pj1对应的花盘直径上的另一边界点pe1,并将边界点pj1的坐标存储到数组Sps中,边界点pe1的坐标存储到Spe中,将线段pj1pe1的长度存储到数组Slen中。
S10.6:重复S10.4-S10.5,依次查找到点pj2、pj3…pj(n-1),使得向量Cenps和Cenpj2、Cenpj3…Cenpj(n-1)的夹角分别为2θ、3θ…(n-1)θ;分别得到与pj2、pj3…pj(n-1)对应的花盘直径上的另一边界点pe2、pe3…pe(n-1);将pj2、pj3…pj(n-1)的坐标存储到数组Sps中,将pe2、pe3…pe(n-1)的坐标存储到数组Spe中;将线段pj2pe2、pj3pe3…pj(n-1)pe(n-1)的长度存储到数组Slen中。
S10.7:计算数组Slen的各线段的均值dia,并作为花盘直径的平均值。
S11:等角度采样法提取圆盘直径,测量原理图如图22所示。
计算圆盘的平均直径时,需要依据一定的角度θ测量n次(如图22所示),求平均值,角度θ与测量次数n的关系为:
也就是说:当n=2时,θ为90°,对圆盘的直径的采样原则是以90°等角度采样,水平方向的直径、旋转90°后的竖直方向的直径,以两者的平均值作为圆盘的直径;
当n=4时,θ为45°,此时以45°等角度采样,在水平、竖直、倾斜方向共采集四次;
当n=8、16、32、64、128、180时,采样角度θ分别为22.5°、11.25°、5.625°、2.8125°、1.40625°、1°。
而具体获得的过程为:
S11.1:在圆盘的尖端轮廓中查找起点psy。
查找构成圆盘的尖端轮廓中的边界点的坐标,将边界点中行坐标与圆盘质心的行坐标相同,且列坐标大于圆盘质心的列坐标的边界点提取出来作为起点ps并将起点psy的坐标存储在数组Spsy中。
S11.2:圆盘轮廓中查找与psy对应的圆盘直径上的另一边界点pey。
将起点psy连接质心点Ceny并延长,该延长线与圆盘的尖端轮廓的交点则为pey,并将边界点pey的坐标存储在数组Spey中。
S11.3:计算线段psypey的长度,并将线段psypey的长度存储到数组Sleny中。
S11.4:沿逆时针方向查找尖端轮廓的边界点pj1y,使得向量Cenpsy和Cenpj1y的夹角为θ。
S11.5:根据S11.2得到与边界点pj1y对应的圆盘直径上的另一边界点pe1y,并将边界点pj1y的坐标存储到数组Spsy中,边界点pe1y的坐标存储到Spey中,将线段pj1ype1y的长度存储到数组Sleny中。
S11.6:重复S11.4-S11.5,依次查找到点pj2y、pj3y…pj(n-1)y,使得向量Cenpsy和Cenpj2y、Cenpj3y,…,Cenpj(n-1)y的夹角分别为2θ、3θ…(n-1)θ;分别得到与pj2y、pj3y,…,pj(n-1)y对应的圆盘直径上的另一边界点pe2y、pe3y,…,pe(n-1)y;将pj2y、pj3y,…,pj(n-1)y的坐标存储到数组Spsy中,将pe2y、pe3y,…,pe(n-1)y的坐标存储到数组Spey中;将线段pj2ype2y、pj3ype3y,…,pj(n-1)ype(n-1)y的长度存储到数组Sleny中。
S11.7:计算数组Sleny的各线段的均值diay,并作为圆盘直径的平均值。
S12:构造直径预测模型。
所述直径包括花盘直径和圆盘直径;
S12.1:构造花盘尖端轮廓的平均直径预测模型。
HTD=2.813+1.051×HTD2;
其中HTD2表示花盘的尖端轮廓的2次采样测量的平均直径,HTD表示花盘尖端轮廓的平均直径,HTD与HTD180(即180次采样测量的平均直径)相关系数R2为0.991。根据该直接预测模型,实现了花盘的尖端轮廓的2次采样测量得到精确的花盘的尖端轮廓的平均直径的目的,减小了计算量。
S12.2:构造圆盘尖端轮廓的平均直径预测模型;
DTD=-0.991+1.024×DTD2;
其中DTD2表示圆盘的尖端轮廓的2次采样测量的平均直径,DTD表示圆盘尖端轮廓的平均直径,DTD与DTD180(即180次采样测量的平均直径)相关系数R2为0.998。根据该直接预测模型,实现了圆盘的尖端轮廓的2次采样测量得到精确的圆盘的尖端轮廓的平均直径的目的,减小了计算量。
S13:计算花盘的几何参数
所述几何参数包括花盘的面积、周长、等效直径、拟合椭圆的长轴和短轴长度;
S13.1:计算花盘的尖端轮廓所包围区域的面积。
对图像jdlk采用matlab中的regionprops()函数,属性值采用'Area',计算所标记区域的像素总个数,然后乘以每个像素所代表的实际的面积0.133*0.133mm2,最终得到花盘尖端轮廓的面积。
S13.2:计算花盘的尖端轮廓的周长;
对图像jdlk采用matlab中的regionprops()函数,属性值采用'Perimeter',得到花盘尖端轮廓的周长。
S13.3:计算花盘尖端轮廓的等效直径。
对图像jdlk采用matlab中的regionprops()函数,属性值采用'EquivDiameter',计算与尖端轮廓所包围区域具有相同面积的圆的直径,得到花盘的尖端轮廓的等效直径。
S13.4:计算花盘的尖端轮廓所包围区域的长轴长度。
对图像jdlk采用matlab中的regionprops()函数,属性值采用'MajorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的长轴长度,得到花盘的尖端轮廓所包围区域的长轴长度。
S13.5:计算花盘的尖端轮廓所包围区域的短轴长度。
对图像jdlk采用matlab中的regionprops()函数,属性值采用'MinorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的短轴长度,得到花盘的尖端轮廓所包围区域的短轴长度。
S14:计算圆盘的几何参数。
所述几何参数包括圆盘的面积、周长、等效直径、拟合椭圆的长轴和短轴长度。
S14.1:计算圆盘的尖端轮廓所包围区域的面积。
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'Area',计算所标记区域的像素总个数,然后乘以每个像素所代表的实际的面积0.133*0.133mm2,最终得到圆盘尖端轮廓的面积。
S14.2:计算圆盘的尖端轮廓的周长。
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'Perimeter',得到圆盘尖端轮廓的周长。
S14.3:计算圆盘尖端轮廓的等效直径。
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'EquivDiameter',计算与尖端轮廓所包围区域具有相同面积的圆的直径,得到圆盘的尖端轮廓的等效直径。
S14.4:计算圆盘的尖端轮廓所包围区域的长轴长度。
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'MajorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的长轴长度,得到圆盘的尖端轮廓所包围区域的长轴长度。
S14.5:计算圆盘的尖端轮廓所包围区域的短轴长度。
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'MinorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的短轴长度,得到圆盘的尖端轮廓所包围区域的短轴长度。
为验证本发明的准确性,使用基于像素行进法来实现原始轮廓和尖端轮廓的直径的测量,并与尖端轮廓测量进行比较,如图23和24所示。
基于像素行进法可用于原始轮廓和尖端轮廓的直径的测量,和上述的基于等角度采样进行直径测量的方法相似,逐点测量边界轮廓上的直径。像素行走法测量的直径是对轮廓的接近全采样,该方法基本上计算了全部的径向直径的长度值。将所有的直径的长度值求平均,该平均值代表了直径,但是像素行进法的计算量较大。为了减小计算量,提高处理速度,本发明将180次采样测量的花盘平均直径HTD180与像素行进法测得的花盘平均直径相比较,发现两者非常接近,两者的差值在0.4%以内。将圆盘平均直径DTD180与像素行进法测得的圆盘平均直径进行比较,发现两者的差值在0.26%以内。可将HTD180、DTD180用于建立可靠性高的预测模型。
花盘尖端轮廓的平均直径HTD与花盘的尖端轮廓的180次采样测量的平均直径HTD180的相关系数R2为0.991。圆盘尖端轮廓的平均直径DTD与DTD180(即180次采样测量的平均直径)相关系数R2为0.998。由于花盘、圆盘的尖端轮廓的平均直径,是分别通过2次采样计算平均值并代入对应的预测模型得到,表明本发明所建立的花盘、圆盘的尖端轮廓的平均直径的预测模型的精度高,计算量小(仅以2次采样测量的平均直径代入预测模型,就可以高精度的预测平均直径)。
采集图像时,相机与花盘的距离变化会导致成像的图像中花盘所占像素数的变化;经过本发明所采用的投影变换,将图像的大小统一调整为3000×3000像素,从而具有对尺度变化不敏感的优点。本发明所开发算法的所有计算都是基于图像的像素点构成的矩阵,将它们转换为物理单位(以mm为单位),4个圆形标记物的质心构成的正方形的边长为400mm,再加上图像的大小为3000×3000像素,相当于0.133mm/像素的测量精度,花盘和圆盘的尖端轮廓、原始轮廓的表示直径的数值均需乘以0.133mm,得到实际的长度;表示花盘的尖端轮廓所包围区域的总像素数需乘以0.133*0.133mm2,得到其实际的面积;表示花盘的原始轮廓所包围区域的总像素数需乘以0.133*0.133mm2,得到其实际的面积;表示圆盘的尖端轮廓总像素数需乘以0.133*0.133mm2,得到其实际的面积;表示圆盘的原始轮廓总像素数需乘以0.133*0.133mm2,得到其实际的面积。本发明中的图像均经过了图像投影变换,减小了畸变,使得花盘和圆盘的原始轮廓、尖端轮廓的提取和像素数的统计更准确,再加上背景板上的圆形标记物的物理尺寸的参考,使得本发明的计算结果精度高,用于科学研究具有准确性和可靠性。根据本发明所开发的应用程序可在便携式平板电脑中进行分析,用时小于10s,满足科研和生产的要求。
通过多个品种、不同大小花盘的实验验证,表明本文所采用的尖端包裹法所确立的花盘区域、采样求直径平均值的方法具有计算量小,对尺度变化不敏感,精度也能达到科研和生产要求的优点,具有一定的实用性。采用本发明方法,具有下述有益效果:(1)本发明所采用的三脚架、背景板和平板电脑等具有一定的便携性,可以在现场容易地使用,并且可提供即时输出。(2)只需获取1个向日葵花盘图像就能进行快速无损测量,人工工作量小。(3)图像处理方法快捷有效,能精确的计算花盘和圆盘的直径,以及计算花盘、圆盘的面积、周长、等效直径、拟合椭圆的尺寸、包围盒的尺寸、充实度和圆形度等几何参数;面积、周长、充实度和圆度等参数有助于理解花卉形态。(4)采集和处理的图像可以存档供以后研究用。(5)自动化程度高,无需人工干预。(6)利用本发明的研究成果作为衡量向日葵的花盘、圆盘等组件和传粉媒介(蜜蜂等)访问率之间相关性的工具,将产生值得研究的有用关系;为研究传粉媒介相互作用提供了技术支撑。(7)通过调整分割方法和所采集的图像,本发明所提出的图像采集和处理方法也可以很容易地扩展应用到其它其菊科植株的花朵测量与分析。(8)从生产农业的角度来看,本发明的图像处理方法具有用于计算花盘中种子数量的潜力,后续研究可用于种子产量估计、花盘尺寸与产油量之间的关系等课题的研究。总之,本发明具有很高的实用价值。
上面所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种向日葵花盘尺寸测量方法,其特征在于,步骤如下:
S1,获取向日葵花盘原始RGB图像a1;
S2,将原始图像a1进行二值化处理得到二值化图像a3;
S3,将二值化图像a3进行图像裁切得到裁切图像a4;
S4,通过连通域标记提取裁切图像a4中四个标记物的质心坐标;
在步骤S4中,具体步骤如下:
S4.1,获取裁切图像a4的大小并设定裁切图像a4有cjm行、cjn列;
通过matlab中的函数size()获取裁切图像a4的大小;
S4.2,将裁切图像a4分割为图像ashangsh和图像axiash;
将裁切图像a4中的1~cjm*0.2行的像素值存储到图像ashangsh中,将裁切图像a4中的cjm*0.8~cjm行的像素值存储到图像axiash中;
S4.3,对图像ashangsh进行处理得到标记物bjw1和标记物bjw2的质心坐标;
S4.3.1,对图像ashangsh进行连通区域标记,得到矩阵lts;
采用matlab中的函数bwlabeln对图像ashangsh进行连通区域标记;
S4.3.2,根据矩阵lts,得到图像ashangsh连通区域的总数量ltszs;
S4.3.3,获得各连通区域面积的数组STATSs;
采用matlab中的函数regionprops(),获得各个连通区域的面积的数组STATSs;
S4.3.4,得到各连通区域的面积矩阵getmianjis(i1);
采用STATSs().Area将各个连通区域的面积存储到getmianjis(i1)中,其中i1的值为1~ltszs,分别对应第1~ltszs个连通区域的面积;
S4.3.5,查找面积最大的连通区域,并将该连通区域在矩阵lts的位次值存储到矩阵zuidas;
采用matlab中的函数find()查找面积最大的连通区域;
S4.3.6,计算各个连通区域的质心,并将各个连通区域的质心的坐标存储到数组zhixins,则zhixins(zuidas)表示的标记物bjw1或标记物bjw2的质心坐标;
采用matlab中的函数regionprops()计算各个连通区域的质心,
S4.3.7,确定标记物bjw1或标记物bjw2的质心坐标;
如果zhixins(zuidas)的列坐标大于0.5*cjn,则判定zhixins(zuidas)表示右上角的标记物bjw2的质心坐标,否则判定zhixins(zuidas)表示左上角的标记物bjw1的质心坐标;
S4.3.8,确定标记物bjw2或标记物bjw1的质心坐标;
将矩阵lts中的值为zuidas的元素全部置0,并重复步骤S4.3.5-S4.3.6,得到标记物的质心坐标zhixins(zuidas2);如果zhixins(zuidas)表示右上角的标记物bjw2的质心坐标,则zhixins(zuidas2)表示左上角的标记物bjw1的质心坐标;反之,如果zhixins(zuidas)表示左上角的标记物bjw1的质心坐标,则zhixins(zuidas2)表示右上角的标记物bjw2的质心坐标;
S4.4,对图像axiash进行处理得到标记物bjw3和标记物bjw4的质心坐标;
S4.4.1,对图像axiash进行连通区域标记,得到矩阵ltx;
采用matlab中的函数bwlabeln对图像axiash进行连通区域标记;
S4.4.2,根据矩阵ltx,得到图像axiash连通区域的总数量ltszx;
S4.4.3,获得各连通区域面积的数组STATSx;
采用matlab中的函数regionprops(),获得各个连通区域的面积的数组STATSx;
S4.4.4,得到各连通区域的面积矩阵getmianjix(i2);
采用STATSs().Area将各个连通区域的面积存储到getmianjix(i2)中,其中i2的值为1~ltszx,分别对应第1~ltszx个连通区域的面积;
S4.4.5,查找面积最大的连通区域,并将该连通区域在矩阵ltx的位次值存储到矩阵zuidax;
采用matlab中的函数find()查找面积最大的连通区域;
S4.4.6,计算各个连通区域的质心,并将各个连通区域的质心的坐标存储到数组zhixinx,则zhixinx(zuidax)表示的标记物bjw3或标记物bjw4的质心坐标;
采用matlab中的函数regionprops()计算各个连通区域的质心,
S4.4.7,确定标记物bjw3或标记物bjw4的质心坐标;
如果zhixinx(zuidax)的列坐标大于0.5*cjn,则判定zhixinx(zuidax)表示右下角的标记物bjw3的质心坐标;否则判定zhixinx(zuidax)表示左下角的标记物bjw4的质心坐标;
S4.4.8,确定标记物bjw4或标记物bjw3的质心坐标;
将矩阵ltx中的值为zuidax的元素全部置0,并重复步骤S4.4.5-S4.4.6,得到标记物的质心坐标zhixinx(zuidax2);如果zhixinx(zuidax)表示右下角的标记物bjw3的质心坐标,则zhixinx(zuidax2)表示左下角的标记物bjw4的质心坐标;反之,如果zhixinx(zuidax)表示左下角的标记物bjw4的质心坐标,则zhixinx(zuidax2)表示右下角的标记物bjw3的质心坐标;
设定左上角的标记物为bjw1、右上角的标记物为bjw2、右下角的标记物为bjw3、左下角的标记物为bjw4;
S5,通过标记物的质心坐标将裁切图像a4进行投影变换,得到投影图像I';
S6,对投影图像I'提取花盘;
S7,对步骤S6提取的花盘采用纹理分割的方法提取圆盘;
S8,采用尖端包裹法提取花盘的尖端轮廓;
提取花盘的尖端点,并将提取的尖端点顺时针依次连接构成尖端轮廓;
S9,采用尖端包裹法提取圆盘的尖端轮廓;
提取圆盘的尖端点并顺时针依次连接构成圆盘的尖端轮廓;
S10,等角度采样法提取花盘直径;
计算花盘的平均直径时,需要依据角度θ测量n次,再求平均值,角度θ与测量次数n的关系为:
S11,等角度采样法提取圆盘直径;
计算圆盘的平均直径时,需要依据角度θ测量n次,再求平均值,角度θ与测量次数n的关系为:
S12,构造直径预测模型;
所述直径包括花盘直径和圆盘直径;
S12.1:构造花盘尖端轮廓的平均直径预测模型:
HTD=2.813+1.051×HTD2;
其中,HTD2表示花盘的尖端轮廓的2次采样测量的平均直径,HTD表示花盘的尖端轮廓的平均直径;
S12.2:构造圆盘尖端轮廓的平均直径预测模型:
DTD=-0.991+1.024×DTD2;
其中,DTD2表示圆盘的尖端轮廓的2次采样测量的平均直径,DTD表示圆盘的尖端轮廓的平均直径;
S13,计算花盘的几何参数;
所述几何参数包括花盘的面积、周长、等效直径、拟合椭圆的长轴和短轴长度;
S14,计算圆盘的几何参数;
所述几何参数包括圆盘的面积、周长、等效直径、拟合椭圆的长轴和短轴长度。
2.根据权利要求1所述的向日葵花盘尺寸测量方法,其特征在于,在步骤S5中,具体步骤如下:
S5.1,根据裁切图像a4中的标记物和投影图像I'中的投影标记物获得投影变换公式:
DY=M*A;
其中,A为变换参数,M为投影图像I'中像素坐标;DY为裁切图像a4中对应的像素点坐标;
S5.1.1,设定裁切图像a4中标记物bjw1、标记物bjw2、标记物bjw3、标记物bjw4的质心坐标分别为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4);
S5.1.2,设定投影图像I'中对应的投影标记物分别为A'(yx1,yy1)、B'(yx2,yy2)、C'(yx3,yy3)、D'(yx4,yy4);且yx1的值为1,yy1的值为1,yx2的值为1,yy2的值为3000,yx3的值为3000,yy3的值为3000,yx4的值为3000,yy4的值为1;从而保证投影变换后的图像的大小为3000×3000;
并将投影图像中投影标记物的坐标作为输入,裁切图像a4中对应的像素点为输出;
S5.1.3,构造投影变换公式:
DY=M*A (1);
其中,变换参数A为:
A=[jza11;jza12;jza13;jza21;jza22;jza23;jza31;jza32] (2);
DY=[x1;y1;x2;y2;x3;y3;x4;y4] (3);
S5.1.4,将裁切图像a4的标记物bjw1、bjw2、bjw3、bjw4的质心坐标以及投影标记物A',B',C',D'的坐标代入公式(1)~(4),解算出变换参数A中元素的值,进而得到完善的投影变换公式;
S5.2,构造双三次插值公式:
S5.2.1,构造双三次插值函数:
其中,a取-0.5;
S5.2.2,根据双三次插值函数构造双三次插值公式;
其中,f(x,y)为像素点(x,y)的插值,f(xi,yi)为像素点(x,y)的4×4邻域点(xi,yi)的像素值,i,j=0,1,2,3;W(x-xi)为点(xi,yi)的像素值在x方向的权重;W(y-yi)为点(xi,yi)的像素值在y方向的权重;
S5.3,根据步骤S5.1计算投影图像I'中任一坐标点(i,j)对应在裁剪图像a4中的坐标(cjwzX,xjwzY);
S5.4,裁剪图像a4距离像素点(cjwzX,xjwzY)最近的16个像素点的加权平均作为投影图像I'中坐标点(i,j)处的像素值;
S5.5,将步骤S5.4得到的投影图像I'中坐标点(i,j)处的像素值结合步骤S5.2得到投影图像I'中坐标点(i,j)处的实际像素值;
S5.6,重复步骤S5.3-S5.5,直至投影图像I'每个坐标点都得到实际像素值。
3.根据权利要求1所述的向日葵花盘尺寸测量方法,其特征在于,在步骤S6中,具体步骤如下:
S6.1,将投影图像I'转换为hsv图像,得到hsv图像的色调H、饱和度S和明度V;
采用matlab中的函数rgb2hsv()将该图像转换为hsv_f;
设定H=hsv_f(:,:,1)*255,S=hsv_f(:,:,2)*255,V=hsv_f(:,:,3)*255;从而分别得到图像的色调H、饱和度S和明度V;
S6.2,hsv图像进行二值化处理得到二值化图像hfl;
对hsv图像的每个像素点逐一进行判断,是否满足判断条件,如果满足该判断条件,则设定该点的值为1,否则为0,从而得到二值图像hfl;
所述判断条件为:26<H(i,j)<34;43<S(i,j)<255;46<V(i,j)<255;
S6.3,对二值化图像hfl进行孔洞填充,得到图像a8;
采用matlab中的函数imfill(hfl,'holes')对二值图像hfl进行孔洞填充;
S6.4,对图像a8进行消噪得到图像a9;
采用matlab中的函数bwareaopen(a8,T)对图像a8进行小面积去除,其中,T表示对面积小于T个像素的区域进行删除,消除噪声干扰,保留唯一的花盘区域;
S6.5,采用图像a9对投影图像I'进行掩膜得到图像a10,图像a10就是提取的花盘。
4.根据权利要求3所述的向日葵花盘尺寸测量方法,其特征在于,在步骤S7中,具体步骤如下:
S7.1,根据图像a10得到纹理图像wenli;
采用matlab中的函数entropyfilt()对图像a10进行处理,得到纹理图像wenli;
S7.2,将纹理图像wenli转换为二值图像EIM2;
S7.2.1,将纹理图像wenli转换为灰度图像Eim;
采用matlab中的函数mat2gray()将图像wenli转换为灰度图像Eim;
S7.2.2,将灰度图像Eim转换为二值图像EIM2;
采用matlab中的函数im2bw(Eim,0.7),以0.7作为阈值将灰度图像Eim转换为二值图像EIM2;
S7.3,获得二值图像EIM2中面积最大的连通区域,得到图像EIMzuida;
S7.3.1,对二值图像EIM2进行连通区域标记,得到矩阵Lerzhihua;
S7.3.2,统计矩阵Lerzhihua中的各个连通区域的面积,并保存在数组Sfenxi;
用matlab中的函数regionprops(Lerzhihua,'Area')统计矩阵Lerzhihua中的各个连通区域的面积;
S7.3.3,筛选连通区域的面积,保留了面积最大的连通区域,得到图像EIMzuida;
采用matlab中的函数bwareaopen(EIM2,max(Sfenxi.Area)-1),将二值图像EIM2中面积小于最大面积的连通区域的区域删除,保留了面积最大的连通区域,得到图像EIMzuida;
S7.4,对图像EIMzuida进行孔洞填充,得到图像EIMzuidatc;
采用matlab中的函数imfill(EIMzuida,'holes')对EIMzuida进行孔洞填充,得到图像EIMzuidatc;
S7.5,对图像EIMzuidatc进行开运算,得到图像EIMkai;
采用matlab中的函数imopen(EIMzuidatc,sejg)对EIMzuidatc进行开运算,得到图像EIMkai,其中,sejg=strel('disk',10),disk表示圆盘结构,sejg表示通过matlab中的构造函数strel()建立半径为10的圆盘;
S7.6,获得图像EIMkai中面积最大的连通区域,得到图像EIM5;
S7.7,对图像EIM5进行闭运算,得到图像EIM6,图像EIM6就是提取的圆盘图像;
采用matlab中的函数imclose(EIM5,sejgtb)对图像EIM5进行闭运算,得到图像EIM6,其中sejgtb=strel('disk',12),表示通过matlab中的构造函数strel()建立半径为12的圆盘。
5.根据权利要求3或4所述的向日葵花盘尺寸测量方法,其特征在于,在步骤S8中,具体步骤如下:
S8.1,对图像a9的外部轮廓进行预处理得到图像a99;
S8.1.1,创建一个半径为5的圆盘结构sejghuapan;
采用sejghuapan=strel('disk',5),创建一个半径为5的圆盘结构sejghuapan;
S8.1.2,对图像a9进行开运算,得到图像a97;
采用matlab中的函数imopen(a9,sejghuapan)对图像a9进行开运算,得到图像a97;
S8.1.3,对图像a97进行闭运算,得到图像a98;
采用matlab中的函数imclose(a97,sejghuapan)对图像a97进行闭运算,得到图像a98;
S8.1.4,对图像a98进行孔洞填充,得到图像a99;
采用matlab中的孔洞填充函数imfill(a98,'holes')对图像a98进行孔洞填充,得到图像a99;
S8.2,提取花盘的轮廓点;
S8.2.1,查找图像a99外部轮廓点,并按照顺时针方向查找到的外部轮廓点的坐标依次存储到数组结构体boundary1中;
采用matlab中的语句:boundary1=bwboundaries(a99),对图像a99进行外部轮廓点的查找;
S8.2.2,得到轮廓点坐标数组boundary;
通过boundary=boundary1{1},将数组结构体boundary1中的轮廓点的坐标存储到数组boundary中;
S8.3,提取花盘的质心坐标点;
S8.3.1,对图像a99提取花盘的质心坐标并存储在数组zhixin;
采用matlab中的函数regionprops(a99,'Centroid')提取花盘的质心的坐标,并存储到zhixin;
S8.3.2,获得花盘质心的x坐标;
设定zhixinxzuobiao1=floor(zhixin.Centroid(2)),得到花盘的质心的x坐标;
S8.3.3,获得花盘质心的y坐标;
设定zhixinyzuobiao1=floor(zhixin.Centroid(1)),得到花盘的质心的y坐标;
S8.4,提取花盘的尖端点并顺时针依次连接构成尖端轮廓;
S8.4.1,计算花盘的质心到花盘的轮廓上的各个点的距离,并储存到数组bianjiezxjuli中;
S8.4.2,获得尖端点坐标的数组jianduan;
如果花盘的轮廓上的任一点Pqd的前20个轮廓点及后20轮廓点到质心的距离都小于点Pqd到质心的距离,则认定该点Pqd为尖端点,存储尖端点的坐标;遍历花盘轮廓点进行尖端点的查找,并依次存入花盘的尖端点坐标的数组jianduan中;
S8.4.3,将所有的尖端点依次连接,构成花盘的尖端轮廓,并将该尖端轮廓内的所有像素点置1,存储为图像jdlk,构成具有尖端轮廓的花盘。
6.根据权利要求5所述的向日葵花盘尺寸测量方法,其特征在于,在步骤S9中,具体步骤如下:
S9.1,提取圆盘的轮廓点;
S9.1.1,查找图像EIM6外部轮廓点,并按照顺时针方向查找到的外部轮廓点的坐标依次存储到数组结构体ypboundary1中;
采用matlab中的语句:ypboundary1=bwboundaries(EIM6),对图像EIM6进行外部轮廓点的查找;
S9.1.2,得到轮廓点坐标数组ypboundary;
通过ypboundary=ypboundary1{1},将数组结构体ypboundary1中的轮廓点的坐标存储到数组ypboundary中;
S9.2,提取圆盘的质心坐标点;
S9.2.1,对EIM6提取圆盘的质心坐标并存储在数组zhixiny;
采用matlab中的函数regionprops(EIM6,'Centroid')提取花盘的质心的坐标,并存储到zhixiny;
S9.2.2,获得圆盘质心的x坐标;
设定zhixinxzuobiao2=floor(zhixiny.Centroid(2)),得到圆盘的质心的x坐标;
S9.2.3,获得花盘质心的y坐标;
设定zhixinyzuobiao2=floor(zhixiny.Centroid(1)),得到圆盘的质心的y坐标;
S9.3,提取圆盘的尖端点并顺时针依次连接构成尖端轮廓;
S9.3.1,计算圆盘的质心到圆盘的轮廓上的各个点的距离,并储存到数组ypbianjiezxjuli中;
S9.3.2,获得尖端点坐标的数组ypjiandua;
如果圆盘的轮廓上的任一点Pyd的前20个轮廓点及后20轮廓点到质心的距离都小于点Pyd到质心的距离,则认定该点Pyd为尖端点,存储尖端点的坐标;遍历圆盘轮廓点进行尖端点的查找,并依次存入圆盘的尖端点坐标的数组ypjianduan中;
S9.3.3,将所有的尖端点依次连接,构成圆盘的尖端轮廓,并将该尖端轮廓内的所有像素点置1,存储为图像ypjdlk,构成具有尖端轮廓的圆盘。
7.根据权利要求1所述的向日葵花盘尺寸测量方法,其特征在于,在步骤S10中,具体步骤如下:
S10.1:在花盘的尖端轮廓中查找起点ps;
查找构成花盘的尖端轮廓中的边界点的坐标,将边界点中行坐标与花盘质心的行坐标相同,且列坐标大于花盘质心的列坐标的边界点提取出来作为起点ps并将起点ps的坐标存储在数组Sps中;
S10.2:花盘轮廓中查找与ps对应的花盘直径上的另一边界点pe;
将起点ps连接质心点Cen并延长,该延长线与花盘的尖端轮廓的交点则为pe,并将边界点pe的坐标存储在数组Spe中;
S10.3:计算线段pspe的长度,并将线段pspe的长度存储到数组Slen中;
S10.4:沿逆时针方向查找尖端轮廓的边界点pj1,使得向量Cenps和Cenpj1的夹角为θ;
S10.5:根据S10.2得到与边界点pj1对应的花盘直径上的另一边界点pe1,并将边界点pj1的坐标存储到数组Sps中,边界点pe1的坐标存储到Spe中,将线段pj1pe1的长度存储到数组Slen中;
S10.6:重复S10.4-S10.5,依次查找到点pj2、pj3…pj(n-1),使得向量Cenps和Cenpj2、Cenpj3…Cenpj(n-1)的夹角分别为2θ、3θ…(n-1)θ;分别得到与pj2、pj3…pj(n-1)对应的花盘直径上的另一边界点pe2、pe3…pe(n-1);将pj2、pj3…pj(n-1)的坐标存储到数组Sps中,将pe2、pe3…pe(n-1)的坐标存储到数组Spe中;将线段pj2pe2、pj3pe3…pj(n-1)pe(n-1)的长度存储到数组Slen中;
S10.7:计算数组Slen的各线段的均值dia,并作为花盘直径的平均值。
8.根据权利要求1所述的向日葵花盘尺寸测量方法,其特征在于,在步骤S11中,具体步骤如下:
S11.1:在圆盘的尖端轮廓中查找起点psy;
查找构成圆盘的尖端轮廓中的边界点的坐标,将边界点中行坐标与圆盘质心的行坐标相同,且列坐标大于圆盘质心的列坐标的边界点提取出来作为起点psy并将起点psy的坐标存储在数组Spsy中;
S11.2:圆盘轮廓中查找与psy对应的圆盘直径上的另一边界点pey;
将起点psy连接质心点Ceny并延长,该延长线与圆盘的尖端轮廓的交点则为pey,并将边界点pey的坐标存储在数组Spey中;
S11.3:计算线段psypey的长度,并将线段psypey的长度存储到数组Sleny中;
S11.4:沿逆时针方向查找尖端轮廓的边界点pj1y,使得向量Cenpsy和Cenpj1y的夹角为θ;
S11.5:根据S11.2得到与边界点pj1y对应的圆盘直径上的另一边界点pe1y,并将边界点pj1y的坐标存储到数组Spsy中,边界点pe1y的坐标存储到Spey中,将线段pj1ype1y的长度存储到数组Sleny中;
S11.6:重复S11.4-S11.5,依次查找到点pj2y、pj3y…pj(n-1)y,使得向量Cenpsy和Cenpj2y、Cenpj3y,…,Cenpj(n-1)y的夹角分别为2θ、3θ…(n-1)θ;分别得到与pj2y、pj3y,…,pj(n-1)y对应的圆盘直径上的另一边界点pe2y、pe3y,…,pe(n-1)y;将pj2y、pj3y,…,pj(n-1)y的坐标存储到数组Spsy中,将pe2y、pe3y,…,pe(n-1)y的坐标存储到数组Spey中;将线段pj2ype2y、pj3ype3y,…,pj(n-1) ype(n-1)y的长度存储到数组Sleny中;
S11.7:计算数组Sleny的各线段的均值diay,并作为圆盘直径的平均值。
9.根据权利要求6所述的向日葵花盘尺寸测量方法,其特征在于,在步骤S13中,具体步骤如下:
S13.1:计算花盘的尖端轮廓所包围区域的面积;
对图像jdlk采用matlab中的regionprops()函数,属性值采用'Area',计算所标记区域的像素总个数,得到花盘尖端轮廓的面积;
S13.2:计算花盘的尖端轮廓的周长;
对图像jdlk采用matlab中的regionprops()函数,属性值采用'Perimeter',得到花盘尖端轮廓的周长;
S13.3:计算花盘尖端轮廓的等效直径;
对图像jdlk采用matlab中的regionprops()函数,属性值采用'EquivDiameter',计算与尖端轮廓所包围区域具有相同面积的圆的直径,得到花盘的尖端轮廓的等效直径;
S13.4:计算花盘的尖端轮廓所包围区域的长轴长度;
对图像jdlk采用matlab中的regionprops()函数,属性值采用'MajorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的长轴长度,得到花盘的尖端轮廓所包围区域的长轴长度;
S13.5:计算花盘的尖端轮廓所包围区域的短轴长度;
对图像jdlk采用matlab中的regionprops()函数,属性值采用'MinorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的短轴长度,得到花盘的尖端轮廓所包围区域的短轴长度;
在步骤S14中,具体步骤为:
S14.1:计算圆盘的尖端轮廓所包围区域的面积;
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'Area',计算所标记区域的像素总个数,得到圆盘尖端轮廓的面积;
S14.2:计算圆盘的尖端轮廓的周长;
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'Perimeter',得到圆盘尖端轮廓的周长;
S14.3:计算圆盘尖端轮廓的等效直径;
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'EquivDiameter',计算与尖端轮廓所包围区域具有相同面积的圆的直径,得到圆盘的尖端轮廓的等效直径;
S14.4:计算圆盘的尖端轮廓所包围区域的长轴长度;
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'MajorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的长轴长度,得到圆盘的尖端轮廓所包围区域的长轴长度;
S14.5:计算圆盘的尖端轮廓所包围区域的短轴长度;
对图像ypjdlk采用matlab中的regionprops()函数,属性值采用'MinorAxisLength',计算与尖端轮廓所包围区域具有相同标准二阶中心矩的椭圆的短轴长度,得到圆盘的尖端轮廓所包围区域的短轴长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811254681.9A CN109360236B (zh) | 2018-10-26 | 2018-10-26 | 一种向日葵花盘尺寸测量方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811254681.9A CN109360236B (zh) | 2018-10-26 | 2018-10-26 | 一种向日葵花盘尺寸测量方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109360236A CN109360236A (zh) | 2019-02-19 |
CN109360236B true CN109360236B (zh) | 2022-05-17 |
Family
ID=65346708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811254681.9A Active CN109360236B (zh) | 2018-10-26 | 2018-10-26 | 一种向日葵花盘尺寸测量方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109360236B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111505038A (zh) * | 2020-04-28 | 2020-08-07 | 中国地质大学(北京) | 一种基于阴极发光技术定量分析砂岩胶结的实现方法 |
TWI742718B (zh) * | 2020-06-11 | 2021-10-11 | 得力富企業股份有限公司 | 形心偵測裝置 |
CN112529923A (zh) * | 2020-12-15 | 2021-03-19 | 北京爱奇艺科技有限公司 | 一种控件识别方法及装置 |
CN112651914A (zh) * | 2020-12-17 | 2021-04-13 | 吉林师范大学 | 一种基于matlab的图像处理*** |
CN113632725A (zh) * | 2021-08-02 | 2021-11-12 | 江汉大学 | 一种自动授粉的控制方法、控制装置及设备 |
CN115861098B (zh) * | 2022-11-24 | 2024-05-28 | 内蒙古工业大学 | 花粉深度图像修正方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3029762B2 (ja) * | 1993-08-18 | 2000-04-04 | 大日本スクリーン製造株式会社 | ピンホール処理方法 |
CN101430768A (zh) * | 2007-11-07 | 2009-05-13 | 刘涛 | 一种二维条码***及其定位方法 |
CN102184383A (zh) * | 2011-04-18 | 2011-09-14 | 哈尔滨工业大学 | 一种印刷体字符图像样本的自动生成方法 |
CN103077384A (zh) * | 2013-01-10 | 2013-05-01 | 北京万集科技股份有限公司 | 一种车标定位识别的方法与*** |
CN103116889A (zh) * | 2013-02-05 | 2013-05-22 | 海信集团有限公司 | 一种定位方法及电子设备 |
CN103236052A (zh) * | 2013-03-28 | 2013-08-07 | 华中科技大学 | 一种基于l1最小化模型的全自动细胞定位方法 |
CN103544420A (zh) * | 2013-08-15 | 2014-01-29 | 马建 | 用于智能眼镜的防伪虹膜身份认证方法 |
CN104143200A (zh) * | 2014-07-16 | 2014-11-12 | 华南理工大学 | 一种图像附加信息的边框型编码与智能识别方法 |
CN105049670A (zh) * | 2015-07-03 | 2015-11-11 | 西安理工大学 | 一种半色调印刷图像中防伪信息隐藏与提取方法 |
CN107256556A (zh) * | 2017-06-08 | 2017-10-17 | 福州大学 | 一种基于灰度跳变思想的太阳能电池组件单元分割方法 |
CN107576666A (zh) * | 2017-10-13 | 2018-01-12 | 成都精工华耀机械制造有限公司 | 一种双光谱成像铁轨及扣件异常检测方法 |
CN108428219A (zh) * | 2018-02-28 | 2018-08-21 | 华南农业大学 | 一种基于三维曲面的原木直径测算方法 |
-
2018
- 2018-10-26 CN CN201811254681.9A patent/CN109360236B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3029762B2 (ja) * | 1993-08-18 | 2000-04-04 | 大日本スクリーン製造株式会社 | ピンホール処理方法 |
CN101430768A (zh) * | 2007-11-07 | 2009-05-13 | 刘涛 | 一种二维条码***及其定位方法 |
CN102184383A (zh) * | 2011-04-18 | 2011-09-14 | 哈尔滨工业大学 | 一种印刷体字符图像样本的自动生成方法 |
CN103077384A (zh) * | 2013-01-10 | 2013-05-01 | 北京万集科技股份有限公司 | 一种车标定位识别的方法与*** |
CN103116889A (zh) * | 2013-02-05 | 2013-05-22 | 海信集团有限公司 | 一种定位方法及电子设备 |
CN103236052A (zh) * | 2013-03-28 | 2013-08-07 | 华中科技大学 | 一种基于l1最小化模型的全自动细胞定位方法 |
CN103544420A (zh) * | 2013-08-15 | 2014-01-29 | 马建 | 用于智能眼镜的防伪虹膜身份认证方法 |
CN104143200A (zh) * | 2014-07-16 | 2014-11-12 | 华南理工大学 | 一种图像附加信息的边框型编码与智能识别方法 |
CN105049670A (zh) * | 2015-07-03 | 2015-11-11 | 西安理工大学 | 一种半色调印刷图像中防伪信息隐藏与提取方法 |
CN107256556A (zh) * | 2017-06-08 | 2017-10-17 | 福州大学 | 一种基于灰度跳变思想的太阳能电池组件单元分割方法 |
CN107576666A (zh) * | 2017-10-13 | 2018-01-12 | 成都精工华耀机械制造有限公司 | 一种双光谱成像铁轨及扣件异常检测方法 |
CN108428219A (zh) * | 2018-02-28 | 2018-08-21 | 华南农业大学 | 一种基于三维曲面的原木直径测算方法 |
Non-Patent Citations (6)
Title |
---|
CE-3全景相机内方位元素标定技术研究;柳溜;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20150415;第2015年卷(第4期);第26页最后1段 * |
Fast Method to Detect Particle Sizes of Objects in Binary Image;Li Wei et al;《2013 Seventh International Conference on Image and Graphics》;20131024;第265-268页 * |
基于图像处理的路用碎石形态评价指标的研究;黎逢亮;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20131215;第2013年卷(第S2期);第26页 * |
基于混沌粒子群优化投影寻踪的高光谱图像目标检测;吴超等;《光学学报》;20111231;第31卷(第12期);第1-8页 * |
基于计算机视觉的铁路扣件检测算法研究;杭元元;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140915;第2014年卷(第9期);第3.2.1节 * |
面向驾驶员疲劳检测的双空间人眼定位方法;江水郎等;《计算机工程》;20081231;第34卷(第24期);第4.1节 * |
Also Published As
Publication number | Publication date |
---|---|
CN109360236A (zh) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109360236B (zh) | 一种向日葵花盘尺寸测量方法 | |
Li et al. | Detection of fruit-bearing branches and localization of litchi clusters for vision-based harvesting robots | |
Sun et al. | Three-dimensional photogrammetric mapping of cotton bolls in situ based on point cloud segmentation and clustering | |
CN110378909B (zh) | 基于Faster R-CNN的面向激光点云的单木分割方法 | |
Malambo et al. | Automated detection and measurement of individual sorghum panicles using density-based clustering of terrestrial lidar data | |
Miao et al. | Automatic stem-leaf segmentation of maize shoots using three-dimensional point cloud | |
Zhou et al. | An integrated skeleton extraction and pruning method for spatial recognition of maize seedlings in MGV and UAV remote images | |
CN113920106B (zh) | 一种基于rgb-d相机的玉米长势三维重构及茎粗测量方法 | |
CN114359546B (zh) | 一种基于卷积神经网络的黄花菜成熟度识别方法 | |
CN111462058B (zh) | 一种水稻有效穗快速检测方法 | |
CN111696150A (zh) | 一种叉尾鮰鱼表型数据的测量方法 | |
CN111429490A (zh) | 一种基于标定球的农林作物三维点云配准方法 | |
CN114818909A (zh) | 一种基于作物长势特征的杂草检测方法和装置 | |
Huang et al. | An automatic machine vision-guided grasping system for Phalaenopsis tissue culture plantlets | |
CN110610438B (zh) | 一种农作物冠层叶柄夹角计算方法及*** | |
CN114240866B (zh) | 基于二维图像与三维生长信息的组培苗分级方法及装置 | |
CN109827503B (zh) | 一种田间作物精准定位方法和装置 | |
CN114022771B (zh) | 一种基于深度学习的玉米苗期田间分布信息统计方法 | |
Miao et al. | Banana plant counting and morphological parameters measurement based on terrestrial laser scanning | |
Harandi et al. | How to make sense of 3D representations for plant phenotyping: a compendium of processing and analysis techniques | |
Li et al. | Multi-source data fusion improves time-series phenotype accuracy in maize under a field high-throughput phenotyping platform | |
Zhu et al. | A method for detecting tomato canopies’ phenotypic traits based on improved skeleton extraction algorithm | |
Lei et al. | Extraction of maize leaf base and inclination angles using terrestrial laser scanning (TLS) data | |
Gao et al. | Maize seedling information extraction from UAV images based on semi-automatic sample generation and Mask R-CNN model | |
CN111291686A (zh) | 农作物根果表型参数的提取与根果表型判别方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |