基于图像处理的豆荚果粒高通量计数方法、系统及装置转让专利

申请号 : CN202310000652.4

文献号 : CN115690107B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱旭华陈渝阳王闯赵飞王亚利

申请人 : 浙江托普云农科技股份有限公司

摘要 :

本发明公开一种基于图像处理的豆荚果粒高通量计数方法、系统及装置,方法包括:获取原始豆荚图像进行预处理,得到分割二值图像;以豆荚顶点为端点,得到豆荚中轴线,并记录豆荚中轴线点集;测量豆荚中轴线点集中各点集位置处距离,得到中轴线长度,得到中轴线长度集合;通过中轴线长度集合创建中轴线直方图;以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,波峰数量为豆荚果粒数量。本发明能够简化图像预处理难度,提高豆荚表型分析的准确性;本发明基于中轴线直方图的豆荚果粒计数方法及计数规则,不仅能够用于任意姿态下豆荚果粒的自动计数,而且能够适用于任意弯曲度豆荚果粒的高通量自动计数。

权利要求 :

1.一种基于图像处理的豆荚果粒高通量计数方法,其特征在于,包括以下步骤:获取原始豆荚图像,对所述原始豆荚图像进行预处理,得到分割二值图像,其中,所述分割二值图像中仅包括豆荚区域信息;

基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集;

基于所述分割二值图像,通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,得到中轴线长度,进而得到中轴线长度集合;

通过所述中轴线长度集合创建中轴线直方图;

基于所述中轴线直方图,以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,所述波峰数量为豆荚果粒数量;

其中,所述基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,包括以下步骤:在所述分割二值图像中分别提取豆荚轮廓信息及豆荚骨架信息,基于所述豆荚轮廓信息检测并得到豆荚顶点,基于所述豆荚骨架信息提取骨架端点并形成骨架端点集合;

在所述骨架端点集合中分别匹配得到距离豆荚顶点最近的两个端点;

根据两个所述端点及豆荚骨架信息,基于最短路径算法检测两个端点之间的最短路径,所述最短路径即为豆荚中轴线;

其中,所述以预设步长遍历相应区间并检测极大值并得到极大值集合,包括以下步骤:预设步长 ,步长取整数,表示中轴线直方图的宽度;

以预设步长遍历 区间并检测极大值,得到极大值集合。

2.根据权利要求1所述基于图像处理的豆荚果粒高通量计数方法,其特征在于,所述对所述原始豆荚图像进行预处理,得到分割二值图像,包括:对原始豆荚图像进行HSV通道提取处理,获取原始豆荚图像的亮度图像,所述亮度图像即为V通道图像;

对所述亮度图像进行双边滤波处理且保留豆荚边缘信息,得到豆荚边缘滤波图像;

对豆荚边缘滤波图像进行自适应阈值分割处理,得到第一二值图像;

对第一二值图像进行分析处理得到仅包含豆荚的分割二值图像。

3.根据权利要求2所述基于图像处理的豆荚果粒高通量计数方法,其特征在于,所述分析处理为Blob分析,包括:基于豆荚表型特征设置过滤条件,基于所述过滤条件进行杂质滤除,其中,过滤条件根据豆荚表型特征将连通域长度、宽度、面积、最小外接矩形、长宽比进行设定的;

保留去除杂质的部分,得到分割二值图像。

4.根据权利要求1所述的基于图像处理的豆荚果粒高通量计数方法,其特征在于,所述通过所述中轴线长度集合创建中轴线直方图,包括以下步骤:基于所述分割二值图像通过距离变换算法测量豆荚中轴线各点集位置处距离;

基于所述中轴线长度集合检测最大值与最小值,创建以预设宽度及预设高度的中轴线直方图,其中,所述中轴线直方图的横坐标表示中轴线点集索引,所述中轴线直方图的纵坐标表示中轴线点集对应距离长度。

5.根据权利要求4所述的基于图像处理的豆荚果粒高通量计数方法,其特征在于,所述通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,通过预设第一掩膜、预设第二掩膜结合欧式距离,对预设大小的图像中的区块进行距离变换得到,包括以下步骤:将预设大小的图像的区块中的元素设置为0,其余元素设为无穷,其中,预设大小的图像与分割二值图像大小相同,且表示分割二值图像前景点距离最近背景位置的距离;

基于预设第一掩模,遍历预设大小的图像,将预设第一掩模中P点对应的元素的值进行更新,得到第一更新数组;

基于预设第二掩模,遍历预设大小的图像,将预设第二掩模中P点对应的元素的值进行更新,得到第二更新数组;

得到更新后的第一数组或者第二数组即为距离变换的结果,将豆荚中轴线各位置处对应距离长度记作中轴线长度集合;

其中,所述基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,包括以下步骤:在所述分割二值图像中分别提取豆荚轮廓信息及豆荚骨架信息,基于所述豆荚轮廓信息检测并得到豆荚顶点,基于所述豆荚骨架信息提取骨架端点并形成骨架端点集合;

在所述骨架端点集合中分别匹配得到距离豆荚顶点最近的两个端点;

根据两个所述端点及豆荚骨架信息,基于最短路径算法检测两个端点之间的最短路径,所述最短路径即为豆荚中轴线;

其中,所述以预设步长遍历相应区间并检测极大值并得到极大值集合,包括以下步骤:预设步长 ,步长取整数,表示中轴线直方图的宽度;

以预设步长遍历 区间并检测极大值,得到极大值集合。

6.一种基于图像处理的豆荚果粒高通量计数系统,其特征在于,包括获取预处理模块、搜索记录模块、测量处理模块、直方图创建模块及豆荚果粒数检测模块;

所述获取预处理模块,用于获取原始豆荚图像,对所述原始豆荚图像进行预处理,得到分割二值图像,其中,所述分割二值图像中仅包括豆荚区域信息;

所述搜索记录模块,基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集;

所述测量处理模块,基于所述分割二值图像,通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,得到中轴线长度,进而得到中轴线长度集合;

所述直方图创建模块,用于通过所述中轴线长度集合创建中轴线直方图;

所述豆荚果粒数检测模块,基于所述中轴线直方图,以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,所述波峰数量为豆荚果粒数量。

7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任意一项所述的方法。

8.一种基于图像处理的豆荚果粒高通量计数装置,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任意一项所述的方法。

说明书 :

基于图像处理的豆荚果粒高通量计数方法、系统及装置

技术领域

[0001] 本发明涉及图像处理技术领域,尤其涉及一种基于图像处理的豆荚果粒高通量计数方法、系统及装置。

背景技术

[0002] 在现有技术中,对于豆荚果粒计数的方式主要通过人工计数,人工计数方法可重复性差、劳动成本高、效率低,很大程度上限制了大豆育种及大豆表型分析的效率。在图像处理领域,可见光成像的主要优点是成像率高、成本低、操作简单,可见光图像处理技术已被应用于多种作物的多样表型信息采集,例如甜瓜果实颜色、马铃薯大小和外形、葡萄果实果序尺寸、梨果实尺寸大小、大枣外观形状参数等。而在大豆果荚自动计数应用中,有文献通过图像处理的技术能够初步实现对大豆果荚果粒数的自动检测,但仅能够适用于人工将豆荚竖直放置且要求豆荚弯曲度较低的条件,无法适用于普遍应用场景。

发明内容

[0003] 本发明针对现有技术中的缺点,提供了一种基于图像处理的豆荚果粒高通量计数方法、系统及装置。
[0004] 为了解决上述技术问题,本发明通过下述技术方案得以解决:
[0005] 一种基于图像处理的高通量豆荚果粒计数方法,包括以下步骤:
[0006] 获取原始豆荚图像,对所述原始豆荚图像进行预处理,得到分割二值图像,其中,所述分割二值图像中仅包括豆荚区域信息;
[0007] 基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集;
[0008] 基于所述分割二值图像,通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,得到中轴线长度,进而得到中轴线长度集合;
[0009] 通过所述中轴线长度集合创建中轴线直方图;
[0010] 基于所述中轴线直方图,以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,所述波峰数量为豆荚果粒数量。
[0011] 作为一种可实施方式,所述对所述原始豆荚图像进行预处理,得到分割二值图像,包括:
[0012] 对原始豆荚图像进行HSV通道提取处理,获取原始豆荚图像的亮度图像,所述亮度图像即为V通道图像;
[0013] 对所述亮度图像进行双边滤波处理且保留豆荚边缘信息,得到豆荚边缘滤波图像;
[0014] 对豆荚边缘滤波图像进行自适应阈值分割处理,得到第一二值图像;
[0015] 对第一二值图像进行分析处理得到仅包含豆荚的分割二值图像。
[0016] 作为一种可实施方式,所述分析处理为Blob分析,包括:
[0017] 基于豆荚表型特征设置过滤条件,基于所述过滤条件进行杂质滤除,其中,过滤条件根据豆荚表型特征将连通域长度、宽度、面积、最小外接矩形、长宽比进行设定的;
[0018] 保留去除杂质的部分,得到分割二值图像。
[0019] 作为一种可实施方式,所述基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,包括以下步骤:
[0020] 在所述分割二值图像中分别提取豆荚轮廓信息及豆荚骨架信息,基于所述豆荚轮廓信息检测并得到豆荚顶点,基于所述豆荚骨架信息提取骨架端点并形成骨架端点集合;
[0021] 在所述骨架端点集合中分别匹配得到距离豆荚顶点最近的两个端点;
[0022] 根据两个所述端点及豆荚骨架信息,基于最短路径算法检测两个端点之间的最短路径,所述最短路径即为豆荚中轴线。
[0023] 作为一种可实施方式,所述通过所述中轴线长度集合创建中轴线直方图,包括以下步骤:
[0024] 基于所述分割二值图像通过距离变换算法测量豆荚中轴线各点集位置处距离;
[0025] 基于所述中轴线长度集合检测最大值与最小值,创建以预设宽度及预设高度的中轴线直方图,其中,所述中轴线直方图的横坐标表示中轴线点集索引,所述中轴线直方图的纵坐标表示中轴线点集对应距离长度。
[0026] 作为一种可实施方式,所述通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,通过预设第一掩膜、预设第二掩膜结合欧式距离,对预设大小的图像中的区块进行距离变换得到,包括以下步骤:
[0027] 将预设大小的图像的区块中的元素设置为0,其余元素设为无穷,其中,预设大小的图像与分割二值图像大小相同,且表示分割二值图像前景点距离最近背景位置的距离;
[0028] 基于预设第一掩模,遍历预设大小的图像,将预设第一掩模中P点对应的元素的值进行更新,得到第一更新数组;
[0029] 基于预设第二掩模,遍历预设大小的图像,将预设第二掩模中P点对应的元素的值进行更新,得到第二更新数组;
[0030] 得到更新后的第一数组或者第二数组即为距离变换的结果,将豆荚中轴线各位置处对应距离长度记作中轴线长度集合。
[0031] 作为一种可实施方式,所述以预设步长遍历相应区间并检测极大值并得到极大值集合,包括以下步骤:
[0032] 假设预设步长 ,步长取整数, 表示中轴线直方图的宽度;
[0033] 以预设步长遍历 区间并检测极大值,得到极大值集合。
[0034] 一种基于图像处理的豆荚果粒高通量计数系统,包括获取预处理模块、搜索记录模块、测量处理模块、直方图创建模块及豆荚果粒数检测模块;
[0035] 所述获取预处理模块,用于获取原始豆荚图像,对所述原始豆荚图像进行预处理,得到分割二值图像,其中,所述分割二值图像中仅包括豆荚区域信息;
[0036] 所述搜索记录模块,基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集;
[0037] 所述测量处理模块,基于所述分割二值图像,通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,得到中轴线长度,进而得到中轴线长度集合;
[0038] 所述直方图创建模块,用于通过所述中轴线长度集合创建中轴线直方图;
[0039] 所述豆荚果粒数检测模块,基于所述中轴线直方图,以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,所述波峰数量为豆荚果粒数量。
[0040] 一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下所述的方法:
[0041] 获取原始豆荚图像,对所述原始豆荚图像进行预处理,得到分割二值图像,其中,所述分割二值图像中仅包括豆荚区域信息;
[0042] 基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集;
[0043] 基于所述分割二值图像,通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,得到中轴线长度,进而得到中轴线长度集合;
[0044] 通过所述中轴线长度集合创建中轴线直方图;
[0045] 基于所述中轴线直方图,以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,所述波峰数量为豆荚果粒数量。
[0046] 一种基于图像处理的豆荚果粒高通量计数装置,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下所述的方法:
[0047] 获取原始豆荚图像,对所述原始豆荚图像进行预处理,得到分割二值图像,其中,所述分割二值图像中仅包括豆荚区域信息;
[0048] 基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集;
[0049] 基于所述分割二值图像,通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,得到中轴线长度,进而得到中轴线长度集合;
[0050] 通过所述中轴线长度集合创建中轴线直方图;
[0051] 基于所述中轴线直方图,以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,所述波峰数量为豆荚果粒数量。
[0052] 本发明由于采用了以上技术方案,具有显著的技术效果:
[0053] 基于本发明的方法、系统及装置,能够简化图像预处理难度,并提高豆荚表型分析的准确性;本发明的基于中轴线直方图的豆荚果粒计数方法及计数规则,不仅能够用于任意姿态下豆荚果粒的自动计数,而且能够适用于任意弯曲度豆荚果粒的高通量自动计数。

附图说明

[0054] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0055] 图1是本发明方法的整体流程示意图;
[0056] 图2是本发明系统的整体结构示意图;
[0057] 图3是本发明图像采集装置的示意图;
[0058] 图4为8邻域示意图;
[0059] 图5是目标邻域点集直线拟合示意图;
[0060] 图6是豆荚中轴线距离直方图拟合图;
[0061] 图7是基于距离测量的豆荚中轴线直方图波峰定位效果图;
[0062] 图8是豆荚高通量果粒计数结果示意图;
[0063] 图9是第一掩膜示意图;
[0064] 图10是第二掩膜示意图。

具体实施方式

[0065] 下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
[0066] 示例性方法:
[0067] 一种基于图像处理的高通量豆荚果粒计数方法,包括以下步骤:
[0068] 获取原始豆荚图像,对所述原始豆荚图像进行预处理,得到分割二值图像,其中,所述分割二值图像中仅包括豆荚区域信息;
[0069] 基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集;
[0070] 基于所述分割二值图像,通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,得到中轴线长度,进而得到中轴线长度集合;
[0071] 通过所述中轴线长度集合创建中轴线直方图;
[0072] 基于所述中轴线直方图,以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,所述波峰数量为豆荚果粒数量。
[0073] 示例性系统:
[0074] 一种基于图像处理的豆荚果粒高通量计数系统,包括获取预处理模块、搜索记录模块、测量处理模块、直方图创建模块及豆荚果粒数检测模块;
[0075] 所述获取预处理模块,用于获取原始豆荚图像,对所述原始豆荚图像进行预处理,得到分割二值图像,其中,所述分割二值图像中仅包括豆荚区域信息;
[0076] 所述搜索记录模块,基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集;
[0077] 所述测量处理模块,基于所述分割二值图像,通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,得到中轴线长度,进而得到中轴线长度集合;
[0078] 所述直方图创建模块,用于通过所述中轴线长度集合创建中轴线直方图;
[0079] 所述豆荚果粒数检测模块,基于所述中轴线直方图,以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,所述波峰数量为豆荚果粒数量。
[0080] 现有技术中,大豆果荚自动计数应用中,虽然有文献通过图像处理的技术能够初步实现对大豆果荚果粒数的自动检测,但仅能够适用于人工将豆荚竖直放置且要求豆荚弯曲度较低的条件,无法适用于普遍应用场景,而基于本发明的方法及系统,能够简化图像预处理难度,并提高豆荚表型分析的准确性;本发明的基于中轴线直方图的豆荚果粒计数方法及计数规则,不仅能够用于任意姿态下豆荚果粒的自动计数,而且能够适用于任意弯曲度豆荚果粒的高通量自动计数。
[0081] 实施例1:
[0082] 一种基于图像处理的高通量豆荚果粒计数方法,如图1所示,包括以下步骤:
[0083] S100、获取原始豆荚图像,对所述原始豆荚图像进行预处理,得到分割二值图像,其中,所述分割二值图像中仅包括豆荚区域信息;
[0084] S200、基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集;
[0085] S300、基于所述分割二值图像,通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,得到中轴线长度,进而得到中轴线长度集合;
[0086] S400、通过所述中轴线长度集合创建中轴线直方图;
[0087] S500、基于所述中轴线直方图,以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,所述波峰数量为豆荚果粒数量。
[0088] 在步骤S100中,采用附图3所示图像采集系统,实际应用中采用扫描仪图像采集设备,扫描所得图像豆荚与背景对比度高、图像分辨率可调,能够降低反光对图像预处理的影响。通过图像采集设备进行豆荚图像采集,得到原始豆荚图像。
[0089] 在步骤S100中,对所述原始豆荚图像进行预处理,得到分割二值图像,包括以下步骤:
[0090] S110、对豆荚图像进行HSV通道提取,获取豆荚图像的亮度图像(V通道图像);
[0091] S120、对亮度图像进行双边滤波处理,去除噪声的同时保持豆荚边缘信息,得到滤波图像;
[0092] S130、对滤波图像进行自适应阈值分割得到第一二值图像;
[0093] S140、对第一二值图像进行Blob分析得到仅包含豆荚的分割二值图像,在此,Blob分析是根据豆荚表型特征将连通域长度、宽度、面积、最小外接矩形、长宽比设定为过滤条件进行杂质滤除,最终得到分割二值图像。
[0094] 在步骤S200中,基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集,具体过程为:
[0095] S210、基于分割二值图像提取豆荚骨架,如附图4所示为骨架提取过程中任一像素8邻域结构图,其中P1为目标像素,通过对图像中各个像素进行结构分析,提取植株骨架拓扑结构图,具体为:
[0096] Step1:循环image2所有前景像素点,对符合如下条件的像素点标记为删除。
[0097] (a)2<=B(P1)<=6
[0098] (b)A(P1)=1
[0099] (c)P2*P4*P6=0
[0100] (d)P4*P6*P8=0
[0101] 条件(a),中心像素P1周围的目标像素(二值中的1)的个数之和在2和6之间;条件(b),8邻域像素中,按顺时针方向,相邻两个像素出现0‑>1的次数。
[0102] Step2:与Step1类似,条件(a)、(b)完全一致,只是条件(c)、(d)稍微不同,满足如下条件的像素P1则标记为删除,条件如下:
[0103] (a)2<=B(P1)<=6
[0104] (b)A(P1)=1
[0105] (c)P2*P4*P8=0
[0106] (d)P2*P6*P8=0
[0107] 循环上述两步骤,直到图像中不再有像素被标记为删除为止,输出的结果即为二值图像细化后的骨架。
[0108] S220、已知豆荚顶点vertexPoint1、vertexPoint2,根据所述豆荚骨架信息,采用Zhang‑Suen骨架提取算法获提取豆荚顶点间的最短路径,得到豆荚中轴线centralAxisPoints,所述最短路径计算方法采用Dijkstra算法,具体为:
[0109] DIJKSTRA(G,w,s)
[0110] 1initialize‑single‑source(G,s)
[0111] 2S=null
[0112] 3Q=G.V
[0113] 4While Q!=null
[0114] 5u=extract‑min(Q)
[0115] 6S=S∪{u}
[0116] 7For each vertex v∈G.Adj[u]
[0117] 8RELAX{u,v,w}
[0118] 其中,G为骨架拓扑图,w为各条边权重,s为起点;首先初始化一个空集S,用于存储已经确定最短板路径的顶点,其中骨架上每一个点都作为图的顶点;初始化集合Q,包含图中所有顶点G.V,Q为自定义数据结构,采用最小优先队列,键为各个顶点最短距离;4‑8行,从Q中取出从s到顶点最短距离最小的顶点u,将u加入S,对每个和u相邻的顶点重新计算路径长度,以替换当前最短但大于新路径的路径;
[0119] 根据所述豆荚顶点,搜索顶点之间的最短路径 ,所述路径 即为豆荚中轴线。如图5所示即为豆荚中轴线示意图。
[0120] 在步骤S400中,所述通过所述中轴线长度集合创建中轴线直方图,包括以下步骤:
[0121] 基于所述分割二值图像通过距离变换算法测量豆荚中轴线各点集位置处距离;
[0122] 基于所述中轴线长度集合检测最大值与最小值,创建以预设宽度及预设高度的中轴线直方图,其中,所述中轴线直方图的横坐标表示中轴线点集索引,所述中轴线直方图的纵坐标表示中轴线点集对应距离长度。
[0123] 在步骤S300中,所述通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,通过预设第一掩膜、预设第二掩膜结合欧式距离,对预设大小的图像中的区块进行距离变换得到,距离变换算法的目的就是对于任意一个前景点,在此,前景点其实就是豆荚区域信息中的点,计算距离它最近背景位置与它之间的长度,也称作距离,包括以下步骤:
[0124] S310、将预设大小的图像的区块中的元素设置为0,其余元素设为无穷,其中,预设大小的图像与分割二值图像大小相同,且表示分割二值图像前景点距离最近背景位置的距离;
[0125] S320、基于预设第一掩模,遍历预设大小的图像,将预设第一掩模中P点对应的元素的值进行更新,得到第一更新数组;
[0126] S330、基于预设第二掩模,遍历预设大小的图像,将预设第二掩模中P点对应的元素的值进行更新,得到第二更新数组;
[0127] S340、得到更新后的第一数组或者第二数组即为距离变换的结果,将豆荚中轴线各位置处对应距离长度记作中轴线长度集合。
[0128] 步骤S300、S400及S500的详细步骤可以参见以下步骤:
[0129] 如图5所示为分割二值图像及豆荚中轴线组合示意图,记豆荚中轴线连续点集为。
[0130] 1):采用距离变换算法,基于分割二值图像测量豆荚中轴线各点集位置处距离,即各个位置处距离标识中轴点距离二值图最近位置的距离,距离变换算法如下:
[0131] Step 1:定义第一掩膜、第二掩膜,如图9和图10所示;
[0132] Step2:按照欧氏距离,对大小为 的图像中的区域块进行距离变换,算法过程如下:
[0133] ①建立一个大小为 的数组F,作如下的初始化:将区域块中的元素设置为0,其余元素设置为无穷;
[0134] ②利用第一掩模(mask1),从左上角开始,从左往右、从上往下遍历数组,将掩模中P点对应的元素的值作如下更新:
[0135] ③利用第二掩模(mask2),从右下角开始,从右往左、从下往上遍历数组,将掩模中P点对应的元素的值作如下更新:
[0136] 按照第二步骤、第一步骤的次序可以达到同样的结果,最终得到的更新后的数组即 为 距 离 变 换的 结 果 ,将 豆 荚 中 轴 线 各 位 置 处 对 应 距 离 长 度 记 作[0137] 2)中轴线直方图拟合
[0138] 基于所述中轴线长度集合检测最大值与最小值
,创建宽度为n、高度为 的中轴线直方图如图6所示,横
坐标表示中轴线点集索引,从1至n,纵坐标为各点对应距离长度。
[0139] 3)中轴线直方图波峰检测
[0140] 根据极值定理,连续且有界条件下,即[a,b]区间内至少存在两点存在 和 ,对任意 恒有 。
[0141] 根据所述中轴线直方图拟合特点,符合极值求解约束条件,因此,设定(取整数),以 为步长遍历 区间并检测极大值,过程如下:
[0142] 初始化: ,
[0143] :
[0144]
[0145]
[0146]
[0147]
[0148]
[0149]
[0150] 完成上述遍历,得到集合 即为直方图 波峰集合,中数量为波峰数量,即是豆荚果粒数数量,如图7为豆荚果粒检测
过程中基于直方图峰谷检测算法结果图,参见图8,图8为高通量豆荚果粒计数结果示意图。
[0151] 实施例2:
[0152] 一种基于图像处理的豆荚果粒高通量计数系统,如图2所示,包括获取预处理模块100、搜索记录模块200、测量处理模块300、直方图创建模块400及豆荚果粒数检测模块500;
[0153] 所述获取预处理模块100,用于获取原始豆荚图像,对所述原始豆荚图像进行预处理,得到分割二值图像,其中,所述分割二值图像中仅包括豆荚区域信息;
[0154] 所述搜索记录模块200,基于所述分割二值图像,以豆荚顶点为端点,采用最短路径算法得到豆荚中轴线,并记录豆荚中轴线点集;
[0155] 所述测量处理模块300,基于所述分割二值图像,通过距离变换算法测量豆荚中轴线点集中各点距离最近背景位置的长度,得到中轴线长度,进而得到中轴线长度集合;
[0156] 所述直方图创建模块400,用于通过所述中轴线长度集合创建中轴线直方图;
[0157] 所述豆荚果粒数检测模块500,基于所述中轴线直方图,以预设步长遍历相应区间并检测极大值并得到极大值集合,极大值集合的极大值的数量为波峰数量,所述波峰数量为豆荚果粒数量。
[0158] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同、相似的部分互相参见即可。
[0159] 本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0160] 本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0161] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0162] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0163] 需要说明的是:
[0164] 说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
[0165] 此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。