CN111724322B - 去除激光条纹图像噪点的方法和系统 - Google Patents
去除激光条纹图像噪点的方法和系统 Download PDFInfo
- Publication number
- CN111724322B CN111724322B CN202010570697.1A CN202010570697A CN111724322B CN 111724322 B CN111724322 B CN 111724322B CN 202010570697 A CN202010570697 A CN 202010570697A CN 111724322 B CN111724322 B CN 111724322B
- Authority
- CN
- China
- Prior art keywords
- line segment
- row
- laser
- laser scattered
- scattered points
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004364 calculation method Methods 0.000 claims abstract description 66
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 239000003086 colorant Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- 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/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Laser Beam Processing (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本发明提供一种去除激光条纹图像噪点的方法和系统。所述方法包括:获取一帧激光条纹图像,该激光条纹图像为水平条纹图像或者竖直条纹图像,按列获取水平条纹图像的各列激光散点的纵坐标,基于各列激光散点的纵坐标在各列激光散点中寻找起始线段头,根据找到的起始线段头沿水平方向进行聚类计算,以得到水平线段,或者,按行获取竖直条纹图像的各行激光散点的横坐标,基于各行激光散点的横坐标在各行激光散点中寻找起始线段头,根据找到的起始线段头沿竖直方向进行聚类计算,以得到竖直线段,最后将位于找到的水平线段或者竖直线段之外的激光散点去除。本发明能够有效去除激光条纹图像中的噪点。
Description
技术领域
本发明涉及机器视觉技术领域,尤其涉及一种去除激光条纹图像噪点的方法和系统。
背景技术
在机器视觉领域,利用激光对物体进行测量时,由于被测物体表面的颜色、粗糙度、纹理、材质等差异造成漫反射性能不同,被测物体各处的光强反射率并不相同等因素,使得采集到的激光条纹包含了大量噪点。这些噪点会影响图像的视觉效果,而且不利于后续的图像处理,因此,有必要提出一种行之有效的激光条纹图像去噪方法。
发明内容
有鉴于此,本发明提供一种去除激光条纹图像噪点的方法和系统,能够有效去除激光条纹图像中的噪点。
第一方面,本发明提供一种去除激光条纹图像噪点的方法,所述方法包括:
获取一帧激光条纹图像,所述激光条纹图像为水平条纹图像或者竖直条纹图像,其中所述水平条纹图像包括多列激光散点,所述竖直条纹图像包括多行激光散点;
按列获取所述水平条纹图像的各列激光散点的纵坐标,基于各列激光散点的纵坐标在各列激光散点中寻找起始线段头,根据找到的起始线段头沿水平方向进行聚类计算,以得到水平线段;或者,按行获取所述竖直条纹图像的各行激光散点的横坐标,基于各行激光散点的横坐标在各行激光散点中寻找起始线段头,根据找到的起始线段头沿竖直方向进行聚类计算,以得到竖直线段;
将位于找到的水平线段或者竖直线段之外的激光散点去除。
可选地,其中基于各列激光散点的纵坐标在各列激光散点中寻找起始线段头包括:
将各列激光散点中的不同激光散点分别作为目标点,
对于第一列激光散点,每个目标点均为起始线段头;
对于除第一列之外的各列激光散点,对每个目标点执行下述操作:
计算目标点的纵坐标分别减去前一列的各激光散点的纵坐标的差值的绝对值,得到第一组绝对值;
将第一组绝对值中的最小值与纵坐标阈值作比较,若最小值大于纵坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头。
可选地,其中基于各行激光散点的横坐标在各行激光散点中寻找起始线段头包括:
将各行激光散点中的不同激光散点分别作为目标点,
对于第一行激光散点,每个目标点均为起始线段头;
对于除第一行之外的各行激光散点,对每个目标点执行下述操作:
计算目标点的横坐标分别减去前一行的各激光散点的横坐标的差值的绝对值,得到第二组绝对值;
将第二组绝对值中的最小值与横坐标阈值作比较,若最小值大于横坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头。
可选地,其中根据找到的起始线段头沿水平方向进行聚类计算包括:
11)计算起始线段头的纵坐标分别减去后一列的各激光散点的纵坐标的差值的绝对值,得到第三组绝对值;
12)将第三组绝对值中的最小值与纵坐标阈值作比较,若最小值小于纵坐标阈值,则与该最小值对应的后一列中的激光散点与起始线段头构成一条线段;
13)将与起始线段头构成一条线段的后一列中的激光散点作为新的起始线段头,返回步骤11);
14)重复执行11)~13),直至第三组绝对值中的最小值大于纵坐标阈值,聚类计算结束。
可选地,其中根据找到的起始线段头沿竖直方向进行聚类计算包括:
21)计算起始线段头的横坐标分别减去后一行的各激光散点的横坐标的差值的绝对值,得到第四组绝对值;
22)将第四组绝对值中的最小值与横坐标阈值作比较,若最小值小于横坐标阈值,则与该最小值对应的后一行中的激光散点与起始线段头构成一条线段;
23)将与起始线段头构成一条线段的后一行中的激光散点作为新的起始线段头,返回步骤21);
24)重复执行21)~23),直至第四组绝对值中的最小值大于横坐标阈值,聚类计算结束。
第二方面,本发明提供一种去除激光条纹图像噪点的系统,所述系统包括:
获取模块,用于获取一帧激光条纹图像,所述激光条纹图像为水平条纹图像或者竖直条纹图像,其中所述水平条纹图像包括多列激光散点,所述竖直条纹图像包括多行激光散点;
寻线模块,用于按列获取所述水平条纹图像的各列激光散点的纵坐标,基于各列激光散点的纵坐标在各列激光散点中寻找起始线段头,根据找到的起始线段头沿水平方向进行聚类计算,以得到水平线段;或者,用于按行获取所述竖直条纹图像的各行激光散点的横坐标,基于各行激光散点的横坐标在各行激光散点中寻找起始线段头,根据找到的起始线段头沿竖直方向进行聚类计算,以得到竖直线段;
去除模块,用于将位于找到的水平线段或者竖直线段之外的激光散点去除。
可选地,所述寻线模块,包括:存储单元、数据分配单元、并行工作的多个数据处理单元以及主控单元,其中,
所述存储单元,用于按列存储所述水平条纹图像的各列激光散点的纵坐标,所述存储单元的一个地址对应地存储一列激光散点的纵坐标;或者,用于按行存储所述竖直条纹图像的各行激光散点的横坐标,所述存储单元的一个地址对应地存储一行激光散点的横坐标;
所述数据分配单元,用于将所述存储单元存储的各列激光散点的纵坐标分配到各所述数据处理单元;或者,用于将所述存储单元存储的各行激光散点的横坐标分配到各所述数据处理单元;
各所述数据处理单元,分别用于按列接收所述数据分配单元分配的所述水平条纹图像的各列激光散点的纵坐标,从各列激光散点中分别选择一个激光散点作为各自的目标点,并行地通过纵坐标判断各自的目标点是否是起始线段头,若是,将找到的起始线段头发送给主控单元,以使主控单元重新分配起始线段头,且,分配到起始线段头的各所述数据处理单元还用于并行地根据各自分配到的起始线段头沿水平方向进行聚类计算;或者,分别用于按行接收所述数据分配单元分配的所述竖直条纹图像的各行激光散点的横坐标,从各行激光散点中分别选择一个激光散点作为各自的目标点,并行地通过横坐标判断各自的目标点是否是起始线段头,若是,将找到的起始线段头发送给主控单元,以使主控单元重新分配起始线段头,且,分配到起始线段头的各所述数据处理单元还用于并行地根据各自分配到的起始线段头沿竖直方向进行聚类计算;
所述主控单元,用于监控各所述数据处理单元的工作状态,将起始线段头分配给处于空闲状态的数据处理单元,其中任意一个所述数据处理单元进行聚类计算时向所述主控单元反馈处于忙碌状态,否则向所述主控单元反馈处于空闲状态。
可选地,对于任意一个所述数据处理单元,通过纵坐标判断各自的目标点是否是起始线段头,包括:
对于第一列激光散点,目标点均为起始线段头;
对于除第一列之外的各列激光散点,对各自的目标点执行下述操作:
计算目标点的纵坐标分别减去前一列的各激光散点的纵坐标的差值的绝对值,得到第一组绝对值;
将第一组绝对值中的最小值与纵坐标阈值作比较,若最小值大于纵坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头;
对于任意一个所述数据处理单元,通过横坐标判断各自的目标点是否是起始线段头,包括:
对于第一行激光散点,目标点均为起始线段头;
对于除第一行之外的各行激光散点,对各自的目标点执行下述操作:
计算目标点的横坐标分别减去前一行的各激光散点的横坐标的差值的绝对值,得到第二组绝对值;
将第二组绝对值中的最小值与横坐标阈值作比较,若最小值大于横坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头。
可选地,对于任意一个所述数据处理单元,根据起始线段头沿水平方向进行聚类计算包括:
11)计算起始线段头的纵坐标分别减去后一列的各激光散点的纵坐标的差值的绝对值,得到第三组绝对值;
12)将第三组绝对值中的最小值与纵坐标阈值作比较,若最小值小于纵坐标阈值,则与该最小值对应的后一列中的激光散点与起始线段头构成一条线段;
13)将与起始线段头构成一条线段的后一列中的激光散点作为新的起始线段头,返回步骤11);
14)重复执行11)~13),直至第三组绝对值中的最小值大于纵坐标阈值,聚类计算结束;
对于任意一个所述数据处理单元,根据起始线段头沿竖直方向进行聚类计算包括:
21)计算起始线段头的横坐标分别减去后一行的各激光散点的横坐标的差值的绝对值,得到第四组绝对值;
22)将第四组绝对值中的最小值与横坐标阈值作比较,若最小值小于横坐标阈值,则与该最小值对应的后一行中的激光散点与起始线段头构成一条线段;
23)将与起始线段头构成一条线段的后一行中的激光散点作为新的起始线段头,返回步骤21);
24)重复执行21)~23),直至第四组绝对值中的最小值大于横坐标阈值,聚类计算结束。
可选地,各所述数据处理单元,分别用于找完一条水平线段后,将找到的水平线段进行打包,通过所述数据分配单元回写至所述存储单元;或者,分别用于找完一条竖直线段后,将找到的竖直线段进行打包,通过所述数据分配单元回写至所述存储单元。
可选地,所述数据处理单元的个数等于或者大于所述存储单元一个地址上支持存储数据的最大个数。
可选地,若所述水平条纹图像的一列激光散点的个数大于所述存储单元一个地址上支持存储数据的最大个数,所述存储单元在该地址存储从一列最上方开始计数的所述最大个数的激光散点的纵坐标或者从一列最下方开始计数的所述最大个数的激光散点的纵坐标;
或者,若所述竖直条纹图像的一行激光散点的个数大于所述存储单元一个地址上支持存储数据的最大个数,所述存储单元在该地址存储从一行最左侧开始计数的所述最大个数的激光散点的横坐标或者从一行最右侧开始计数的所述最大个数的激光散点的横坐标。
可选地,所述寻线模块基于FPGA实现。
根据本发明的实施例,提取激光条纹图像中的激光散点的坐标进行聚类计算,连接出全部线段,并将线段外的激光散点去除,能够有效去除激光条纹图像中的噪点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相机拍摄的一帧水平条纹图像的示意图;
图2为本发明实施例提供的一种去除激光条纹图像噪点的方法的流程示意图;
图3为一帧水平条纹图像的激光散点图;
图4为一帧水平条纹图像的激光散点图线段聚类计算过程的示意图;
图5为本发明实施例提供的一种去除激光条纹图像噪点的系统的结构示意图;
图6为本发明实施例提供的寻线模块的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明实施例提供的一种去除激光条纹图像噪点的方法进行详细说明。当激光打在被测物体上,通过相机拍摄激光条纹,图1是相机拍摄的一帧水平条纹图像的示意图,由于激光条纹是有宽度的,因此,需要对激光条纹进行预处理,在激光条纹的一列或者一行上可以提取出多个激光散点,这些激光散点有些是噪点。通常,噪点是一些比较孤立的点,无法形成有效线段,基于此,只要将激光条纹图像中的线段全部找出,那么线段外的激光散点即为噪点。在本实施例中,如无特殊说明,激光条纹图像都是经过预处理之后的激光散点图。
图2为本发明实施例提供的一种去除激光条纹图像噪点的方法的流程示意图,其中,该方法可以应用于图像处理设备,如图2所示,该方法包括:
步骤S101、获取一帧激光条纹图像,该激光条纹图像为水平条纹图像或者竖直条纹图像,其中水平条纹图像包括多列激光散点,竖直条纹图像包括多行激光散点。
步骤S102、按列获取水平条纹图像的各列激光散点的纵坐标,基于各列激光散点的纵坐标在各列激光散点中寻找起始线段头,根据找到的起始线段头沿水平方向进行聚类计算,以得到水平线段,或者,按行获取竖直条纹图像的各行激光散点的横坐标,基于各行激光散点的横坐标在各行激光散点中寻找起始线段头,根据找到的起始线段头沿竖直方向进行聚类计算,以得到竖直线段。
步骤S103、将位于找到的水平线段或者竖直线段之外的激光散点去除。
从上面的执行步骤可以看出,本发明实施例中,处理的对象可以是水平条纹图像或者竖直条纹图像,二者处理流程类似。下面分别对去除水平条纹图像的噪点或者去除竖直条纹图像的噪点进行详细描述。
作为一种实施方式,首先获取一帧水平条纹图像,水平条纹图像中的激光条纹是呈水平方向的,对应地,最终得到的线段也是水平方向的。图3为一帧水平条纹图像的激光散点示意图,包括多列激光散点,其中各列激光散点具有相同的横坐标,各列激光散点中的不同激光散点具有不同的纵坐标。
接着,按列获取水平条纹图像的各列激光散点的纵坐标,得到各列激光散点的纵坐标之后,将各列激光散点中的不同激光散点分别作为目标点,判断每个目标点是否是起始线段头。本申请中,起始线段头就是一条线段的起始点。
对于第一列激光散点来说,容易理解的是,其中每个目标点均为起始线段头。对于除第一列之外的其余各列激光散点,其中每个目标点是否为起始线段头,可以按照下面的方法来判断:
计算目标点的纵坐标分别减去前一列的各激光散点的纵坐标的差值的绝对值,得到一组绝对值;将这一组绝对值中的最小值与纵坐标阈值作比较,若最小值大于纵坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头。参考图3,以激光散点A为目标点,计算A的纵坐标减去前一列的各激光散点的纵坐标的差值,然后分别取绝对值,这些绝对值中的最小值大于纵坐标阈值,则A为起始线段头。
找到一个起始线段头后,以该起始线段头作为起始点,沿水平方向进行聚类计算,就可以找到一条水平线段,具体方法如下:
1)计算起始线段头的纵坐标分别减去后一列的各激光散点的纵坐标的差值的绝对值,得到一组绝对值;
2)将这一组绝对值中的最小值与纵坐标阈值作比较,若最小值小于纵坐标阈值,则与该最小值对应的后一列中的激光散点与起始线段头构成一条线段;
3)将与起始线段头构成一条线段的后一列中的激光散点作为新的起始线段头,返回步骤1);
4)重复执行1)~3),直至得到的一组绝对值中的最小值大于纵坐标阈值,聚类计算结束。
对每个找到的起始线段头,按照上述方法沿水平方向进行聚类计算,找到水平条纹图像的全部水平线段。可以参考图4,图4示出了以激光散点A为起始线段头寻找水平线段的过程,聚类的路线依照箭头方向依次进行。
最后,将位于找到的水平线段之外的激光散点去除。
作为另一种实施方式,首先获取一帧竖直条纹图像,竖直条纹图像中的激光条纹是呈竖直方向的,对应地,最终得到的线段也是竖直方向的。本实施例中的竖直条纹图像包括多行激光散点,其中各行激光散点具有相同的纵坐标,各行激光散点中的不同激光散点具有不同的横坐标。
接着,按行获取竖直条纹图像的各行激光散点的横坐标,得到各行激光散点的横坐标之后,将各行激光散点中的不同激光散点分别作为目标点,判断每个目标点是否是起始线段头。
对于第一行激光散点来说,容易理解的是,其中每个目标点均为起始线段头。对于除第一行之外的其余各行激光散点,其中每个目标点是否为起始线段头,可以按照下面的方法来判断:
计算目标点的横坐标分别减去前一行的各激光散点的横坐标的差值的绝对值,得到一组绝对值;将这一组绝对值中的最小值与横坐标阈值作比较,若最小值大于横坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头。
找到一个起始线段头后,以该起始线段头作为起始点,沿竖直方向进行聚类计算,就可以找到一条竖直线段,具体方法如下:
1)计算起始线段头的横坐标分别减去后一行的各激光散点的横坐标的差值的绝对值,得到一组绝对值;
2)将这一组绝对值中的最小值与横坐标阈值作比较,若最小值小于横坐标阈值,则与该最小值对应的后一行中的激光散点与起始线段头构成一条线段;
3)将与起始线段头构成一条线段的后一行中的激光散点作为新的起始线段头,返回步骤1);
4)重复执行1)~3),直至得到的一组绝对值中的最小值大于横坐标阈值,聚类计算结束。
对每个找到的起始线段头,按照上述方法沿竖直方向进行聚类计算,找到竖直条纹图像的全部竖直线段。
最后,将位于找到的竖直线段之外的激光散点去除。
应用本发明实施例提供的去除激光条纹图像噪点的方法,在激光条纹图像中连接出全部线段,并将线段外的激光散点去除,能够有效去除激光条纹图像中的噪点。
与上述方法实施例相对应,本发明实施例还提供一种去除激光条纹图像噪点的系统,如图5所示,所述系统包括:
获取模块501,用于获取一帧激光条纹图像,该激光条纹图像为水平条纹图像或者竖直条纹图像,其中水平条纹图像包括多列激光散点,竖直条纹图像包括多行激光散点;
寻线模块502,用于按列获取水平条纹图像的各列激光散点的纵坐标,基于各列激光散点的纵坐标在各列激光散点中寻找起始线段头,根据找到的起始线段头沿水平方向进行聚类计算,以得到水平线段,或者,用于按行获取竖直条纹图像的各行激光散点的横坐标,基于各行激光散点的横坐标在各行激光散点中寻找起始线段头,根据找到的起始线段头沿竖直方向进行聚类计算,以得到竖直线段;
去除模块503,用于将位于找到的水平线段或者竖直线段之外的激光散点去除。
上述系统中,寻线模块502的计算量非常庞大,有必要尽可能地提高寻线模块502的数据处理速度。在一个示例中,如图6所示,寻线模块502包括:存储单元5021、数据分配单元5022、并行工作的多个数据处理单元5023(假定有N个数据处理单元,依次记为50231,50232,……,5023N)以及主控单元5024,其中,
存储单元5021,用于按列存储水平条纹图像的各列激光散点的纵坐标,其中存储单元的一个地址对应地存储一列激光散点的纵坐标,或者,用于按行存储竖直条纹图像的各行激光散点的横坐标,其中存储单元的一个地址对应地存储一行激光散点的横坐标;
数据分配单元5022,用于将存储单元5021存储的各列激光散点的纵坐标分配到各数据处理单元,或者,用于将存储单元5021存储的各行激光散点的横坐标分配到各数据处理单元;
数据处理单元50231,50232,……,5023N,分别用于按列接收数据分配单元5022分配的水平条纹图像的各列激光散点的纵坐标,从各列激光散点中分别选择一个激光散点作为各自的目标点,各数据处理单元选择的目标点可以为不同的激光散点;各数据处理单元并行地通过纵坐标判断各自的目标点是否是起始线段头,若是,将找到的起始线段头发送给主控单元,以使主控单元重新分配起始线段头,且,分配到起始线段头的各数据处理单元还用于并行地根据各自分配到的起始线段头沿水平方向进行聚类计算。最终,各数据处理单元合作完成对水平条纹图像的各激光散点是否为起始线段头的判断工作。
或者,数据处理单元50231,50232,……,5023N,分别用于按行接收数据分配单元5022分配的竖直条纹图像的各行激光散点的横坐标,从各行激光散点中分别选择一个激光散点作为各自的目标点,各数据处理单元选择的目标点可以为不同的激光散点,各数据处理单元并行地通过横坐标判断各自的目标点是否是起始线段头,若是,将找到的起始线段头发送给主控单元,以使主控单元重新分配起始线段头,且,分配到起始线段头的各数据处理单元还用于并行地根据各自分配到的起始线段头沿竖直方向进行聚类计算。最终,各数据处理单元合作完成对竖直条纹图像的各激光散点是否为起始线段头的判断工作。
主控单元5024,用于监控各数据处理单元的工作状态,将起始线段头分配给处于空闲状态的数据处理单元,其中任意一个数据处理单元进行聚类计算时向主控单元反馈处于忙碌状态,否则向主控单元反馈处于空闲状态。
作为一种实施方式,上述实施例中的寻线模块502可以基于FPGA来实现,利用并行工作的多个数据处理单元,每个数据处理单元计算功能相同,计算的数据流各不相同,计算过程中互不干扰,各自寻找不同线段,能够成倍提升激光散点数据处理的速度。
一般的,数据处理单元的个数等于或者大于存储单元一个地址上支持存储数据的最大个数。这样设计,使得数据处理单元能够并行处理不同的存储数据,不会出现以下情况:某一个存储数据没有对应的数据处理单元进行处理,还需等待某一数据处理单元处理完其他数据之后,再对该存储数据进行处理。数据处理单元的个数如果大于存储数据的最大个数,相当于提供一种冗余设计。在一个示例中,数据处理单元的个数与存储单元一个地址上支持存储数据的最大个数相同,例如,存储单元一个地址上支持存储数据的最大个数相同为N,数据处理单元的个数也为N,依次记为50231,50232,……,5023N。每个数据处理单元都有自己的序号,主控单元通过数据处理单元的序号识别不同的数据处理单元。
获取到水平条纹图像或者竖直条纹图像后,若水平条纹图像的一列激光散点的个数大于存储单元一个地址上支持存储数据的最大个数N,考虑到激光条纹的连贯性,则存储单元在该地址上存储从一列最上方开始计数的N个激光散点的纵坐标或者从一列最下方开始计数的N个激光散点的纵坐标。
或者,
若竖直条纹图像的一行激光散点的个数大于存储单元一个地址上支持存储数据的最大个数N,考虑到激光条纹的连贯性,则存储单元在该地址上存储从一行最左侧开始计数的N个激光散点的横坐标或者从一行最右侧开始计数的N个激光散点的横坐标。
作为一种实施方式,对N个数据处理单元并行处理水平条纹图像数据的过程作一个详细说明。N个数据处理单元分别按列接收数据分配单元分配的存储单元一个地址上存储的N个纵坐标,存储单元一个地址上存储的这N个纵坐标包括了一列激光散点的纵坐标,如果一列激光散点的个数为M(M<N),那么,存储单元一个地址上除了存储M个激光散点的纵坐标之外,其余N-M个纵坐标使用初始化值。这N-M个纵坐标可以认为是虚拟的激光散点的纵坐标。
这N个数据处理单元并行工作,每个数据处理单元各自从一列N个纵坐标中选择一个纵坐标进行处理,与该纵坐标对应的激光散点即为一个数据处理单元的目标点。
对于任意一个数据处理单元,通过纵坐标判断各自的目标点是否是起始线段头,可以按下述方法进行:
对于第一列激光散点,目标点均为起始线段头;
对于除第一列之外的各列激光散点,计算目标点的纵坐标分别减去前一列的各激光散点的纵坐标的差值的绝对值,得到一组绝对值;将这一组绝对值中的最小值与纵坐标阈值作比较,若最小值大于纵坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头。
任意一个数据处理单元,当找到起始线段头后,将找到的起始线段头发送给主控单元,主控单元再将收到的起始线段头进行重新分配。主控单元是按照数据处理单元的工作状态分配线段头,本实施例中,各数据处理单元具有两种工作状态:空闲状态和忙碌状态,主控单元将起始线段头分配给处于空闲状态的数据处理单元。一般地,主控单元按照各数据处理单元的优先级顺序将起始线段头分配到优先级靠前的且处于空闲状态的数据处理单元。各数据处理单元的优先级可以简单地按各数据处理单元的序号来设计,即各数据处理单元优先级依次为:数据处理单元1>数据处理单元2>…>数据处理单元N-1>数据处理单元N。
数据处理单元在收到分配的起始线段头之后,开始根据起始线段头沿水平方向进行聚类计算,并向主控单元反馈处于忙碌状态,不再接收新的起始线段头;只要数据处理单元没有进行聚类计算,则向主控单元反馈处于空闲状态。例如,数据处理单元在聚类计算结束后,向主控单元反馈处于空闲状态,等待主控单元再次分配起始线段头。
其中,数据处理单元根据起始线段头沿水平方向进行聚类计算可以按下述方法进行:
1)计算起始线段头的纵坐标分别减去后一列的各激光散点的纵坐标的差值的绝对值,得到一组绝对值;
2)将这一组绝对值中的最小值与纵坐标阈值作比较,若最小值小于纵坐标阈值,则与该最小值对应的后一列中的激光散点与起始线段头构成一条线段;
3)将与起始线段头构成一条线段的后一列中的激光散点作为新的起始线段头,返回步骤1);
4)重复执行1)~3),直至得到的一组绝对值中的最小值大于纵坐标阈值,聚类计算结束。
通过聚类计算,数据处理单元可以找到一条水平线段。数据处理单元找完一条水平线段后,将找到的水平线段进行打包,通过数据分配单元回写至存储单元。
另外说明的是,对于一个忙碌状态的数据处理单元,在根据分配的起始线段头进行聚类计算的同时,判断各列中的目标点是否是起始线段头的计算不受影响,两个计算过程是同时进行的。数据处理单元在聚类计算过程中若找到新的起始线段头,则将新的起始线段头发送给主控单元,以使主控单元对新的起始线段头重新分配。
作为另一种实施方式,对N个数据处理单元并行处理竖直条纹图像数据的过程作一个详细说明。N个数据处理单元分别按行接收数据分配单元分配的存储单元一个地址上存储的N个横坐标,存储单元一个地址上存储的这N个横坐标包括了一行激光散点的横坐标,如果一行激光散点的个数为M(M<N),那么,存储单元一个地址上除了存储M个激光散点的横坐标之外,其余N-M个横坐标使用初始化值。这N-M个横坐标可以认为是虚拟的激光散点的横坐标。
这N个数据处理单元并行工作,每个数据处理单元各自从一行N个横坐标中选择一个横坐标进行处理,与该横坐标对应的激光散点即为一个数据处理单元的目标点。
对于任意一个数据处理单元,通过横坐标判断各自的目标点是否是起始线段头,可以按下述方法进行:
对于第一行激光散点,目标点均为起始线段头;
对于除第一行之外的各行激光散点,计算目标点的横坐标分别减去前一行的各激光散点的横坐标的差值的绝对值,得到一组绝对值;将这一组绝对值中的最小值与横坐标阈值作比较,若最小值大于横坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头。
任意一个数据处理单元,当找到起始线段头后,将找到的起始线段头发送给主控单元,主控单元再将收到的起始线段头进行重新分配。主控单元是按照数据处理单元的工作状态分配线段头,本实施例中,各数据处理单元具有两种工作状态:空闲状态和忙碌状态,主控单元将起始线段头分配给处于空闲状态的数据处理单元。一般地,主控单元按照各数据处理单元的优先级顺序将起始线段头分配到优先级靠前的且处于空闲状态的数据处理单元。各数据处理单元的优先级可以简单地按各数据处理单元的序号来设计,即各数据处理单元优先级依次为:数据处理单元1>数据处理单元2>…>数据处理单元N-1>数据处理单元N。
数据处理单元在收到分配的起始线段头之后,开始根据起始线段头沿竖直方向进行聚类计算,并向主控单元反馈处于忙碌状态,不再接收新的起始线段头;只要数据处理单元没有进行聚类计算,则向主控单元反馈处于空闲状态。例如,数据处理单元在聚类计算结束后,向主控单元反馈处于空闲状态,等待主控单元再次分配起始线段头。
其中,数据处理单元根据起始线段头沿竖直方向进行聚类计算可以按下述方法进行:
1)计算起始线段头的横坐标分别减去后一行的各激光散点的横坐标的差值的绝对值,得到一组绝对值;
2)将这一组绝对值中的最小值与横坐标阈值作比较,若最小值小于横坐标阈值,则与该最小值对应的后一行中的激光散点与起始线段头构成一条线段;
3)将与起始线段头构成一条线段的后一行中的激光散点作为新的起始线段头,返回步骤1);
4)重复执行1)~3),直至得到的一组绝对值中的最小值大于横坐标阈值,聚类计算结束。
通过聚类计算,数据处理单元可以找到一条竖直线段。数据处理单元找完一条竖直线段后,将找到的竖直线段进行打包,通过数据分配单元回写至存储单元。
另外说明的是,对于一个忙碌状态的数据处理单元,在根据分配的起始线段头进行聚类计算的同时,判断各行中的目标点是否是起始线段头的计算不受影响,两个计算过程是同时进行的。数据处理单元在聚类计算过程中若找到新的起始线段头,则将新的起始线段头发送给主控单元,以使主控单元对新的起始线段头重新分配。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种去除激光条纹图像噪点的方法,其特征在于,所述方法包括:
获取一帧激光条纹图像,所述激光条纹图像为水平条纹图像或者竖直条纹图像,其中所述水平条纹图像包括多列激光散点,所述竖直条纹图像包括多行激光散点;
按列获取所述水平条纹图像的各列激光散点的纵坐标,基于各列激光散点的纵坐标在各列激光散点中寻找起始线段头,根据找到的起始线段头沿水平方向进行聚类计算,以得到水平线段;或者,按行获取所述竖直条纹图像的各行激光散点的横坐标,基于各行激光散点的横坐标在各行激光散点中寻找起始线段头,根据找到的起始线段头沿竖直方向进行聚类计算,以得到竖直线段;
将位于找到的水平线段或者竖直线段之外的激光散点去除;
其中根据找到的起始线段头沿水平方向进行聚类计算包括:
11)计算起始线段头的纵坐标分别减去后一列的各激光散点的纵坐标的差值的绝对值,得到第三组绝对值;
12)将第三组绝对值中的最小值与纵坐标阈值作比较,若最小值小于纵坐标阈值,则与该最小值对应的后一列中的激光散点与起始线段头构成一条线段;
13)将与起始线段头构成一条线段的后一列中的激光散点作为新的起始线段头,返回步骤11);
14)重复执行11)~13),直至第三组绝对值中的最小值大于纵坐标阈值,聚类计算结束;
其中根据找到的起始线段头沿竖直方向进行聚类计算包括:
21)计算起始线段头的横坐标分别减去后一行的各激光散点的横坐标的差值的绝对值,得到第四组绝对值;
22)将第四组绝对值中的最小值与横坐标阈值作比较,若最小值小于横坐标阈值,则与该最小值对应的后一行中的激光散点与起始线段头构成一条线段;
23)将与起始线段头构成一条线段的后一行中的激光散点作为新的起始线段头,返回步骤21);
24)重复执行21)~23),直至第四组绝对值中的最小值大于横坐标阈值,聚类计算结束。
2.根据权利要求1所述的方法,其特征在于,其中基于各列激光散点的纵坐标在各列激光散点中寻找起始线段头包括:
将各列激光散点中的不同激光散点分别作为目标点,
对于第一列激光散点,每个目标点均为起始线段头;
对于除第一列之外的各列激光散点,对每个目标点执行下述操作:
计算目标点的纵坐标分别减去前一列的各激光散点的纵坐标的差值的绝对值,得到第一组绝对值;
将第一组绝对值中的最小值与纵坐标阈值作比较,若最小值大于纵坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头。
3.根据权利要求1所述的方法,其特征在于,其中基于各行激光散点的横坐标在各行激光散点中寻找起始线段头包括:
将各行激光散点中的不同激光散点分别作为目标点,
对于第一行激光散点,每个目标点均为起始线段头;
对于除第一行之外的各行激光散点,对每个目标点执行下述操作:
计算目标点的横坐标分别减去前一行的各激光散点的横坐标的差值的绝对值,得到第二组绝对值;
将第二组绝对值中的最小值与横坐标阈值作比较,若最小值大于横坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头。
4.一种去除激光条纹图像噪点的系统,其特征在于,所述系统包括:
获取模块,用于获取一帧激光条纹图像,所述激光条纹图像为水平条纹图像或者竖直条纹图像,其中所述水平条纹图像包括多列激光散点,所述竖直条纹图像包括多行激光散点;
寻线模块,用于按列获取所述水平条纹图像的各列激光散点的纵坐标,基于各列激光散点的纵坐标在各列激光散点中寻找起始线段头,根据找到的起始线段头沿水平方向进行聚类计算,以得到水平线段;或者,用于按行获取所述竖直条纹图像的各行激光散点的横坐标,基于各行激光散点的横坐标在各行激光散点中寻找起始线段头,根据找到的起始线段头沿竖直方向进行聚类计算,以得到竖直线段;
去除模块,用于将位于找到的水平线段或者竖直线段之外的激光散点去除;
其中根据找到的起始线段头沿水平方向进行聚类计算包括:
11)计算起始线段头的纵坐标分别减去后一列的各激光散点的纵坐标的差值的绝对值,得到第三组绝对值;
12)将第三组绝对值中的最小值与纵坐标阈值作比较,若最小值小于纵坐标阈值,则与该最小值对应的后一列中的激光散点与起始线段头构成一条线段;
13)将与起始线段头构成一条线段的后一列中的激光散点作为新的起始线段头,返回步骤11);
14)重复执行11)~13),直至第三组绝对值中的最小值大于纵坐标阈值,聚类计算结束;
其中根据找到的起始线段头沿竖直方向进行聚类计算包括:
21)计算起始线段头的横坐标分别减去后一行的各激光散点的横坐标的差值的绝对值,得到第四组绝对值;
22)将第四组绝对值中的最小值与横坐标阈值作比较,若最小值小于横坐标阈值,则与该最小值对应的后一行中的激光散点与起始线段头构成一条线段;
23)将与起始线段头构成一条线段的后一行中的激光散点作为新的起始线段头,返回步骤21);
24)重复执行21)~23),直至第四组绝对值中的最小值大于横坐标阈值,聚类计算结束。
5.根据权利要求4所述的系统,其特征在于,所述寻线模块,包括:存储单元、数据分配单元、并行工作的多个数据处理单元以及主控单元,其中,
所述存储单元,用于按列存储所述水平条纹图像的各列激光散点的纵坐标,所述存储单元的一个地址对应地存储一列激光散点的纵坐标;或者,用于按行存储所述竖直条纹图像的各行激光散点的横坐标,所述存储单元的一个地址对应地存储一行激光散点的横坐标;
所述数据分配单元,用于将所述存储单元存储的各列激光散点的纵坐标分配到各所述数据处理单元;或者,用于将所述存储单元存储的各行激光散点的横坐标分配到各所述数据处理单元;
各所述数据处理单元,分别用于按列接收所述数据分配单元分配的所述水平条纹图像的各列激光散点的纵坐标,从各列激光散点中分别选择一个激光散点作为各自的目标点,并行地通过纵坐标判断各自的目标点是否是起始线段头,若是,将找到的起始线段头发送给主控单元,以使主控单元重新分配起始线段头,且,分配到起始线段头的各所述数据处理单元还用于并行地根据各自分配到的起始线段头沿水平方向进行聚类计算;或者,分别用于按行接收所述数据分配单元分配的所述竖直条纹图像的各行激光散点的横坐标,从各行激光散点中分别选择一个激光散点作为各自的目标点,并行地通过横坐标判断各自的目标点是否是起始线段头,若是,将找到的起始线段头发送给主控单元,以使主控单元重新分配起始线段头,且,分配到起始线段头的各所述数据处理单元还用于并行地根据各自分配到的起始线段头沿竖直方向进行聚类计算;
所述主控单元,用于监控各所述数据处理单元的工作状态,将起始线段头分配给处于空闲状态的数据处理单元,其中任意一个所述数据处理单元进行聚类计算时向所述主控单元反馈处于忙碌状态,否则向所述主控单元反馈处于空闲状态。
6.根据权利要求5所述的系统,其特征在于,对于任意一个所述数据处理单元,通过纵坐标判断各自的目标点是否是起始线段头,包括:
对于第一列激光散点,目标点均为起始线段头;
对于除第一列之外的各列激光散点,对各自的目标点执行下述操作:
计算目标点的纵坐标分别减去前一列的各激光散点的纵坐标的差值的绝对值,得到第一组绝对值;
将第一组绝对值中的最小值与纵坐标阈值作比较,若最小值大于纵坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头;
对于任意一个所述数据处理单元,通过横坐标判断各自的目标点是否是起始线段头,包括:
对于第一行激光散点,目标点均为起始线段头;
对于除第一行之外的各行激光散点,对各自的目标点执行下述操作:
计算目标点的横坐标分别减去前一行的各激光散点的横坐标的差值的绝对值,得到第二组绝对值;
将第二组绝对值中的最小值与横坐标阈值作比较,若最小值大于横坐标阈值,则目标点是起始线段头,否则目标点不是起始线段头。
7.根据权利要求5所述的系统,其特征在于,各所述数据处理单元,分别用于找完一条水平线段后,将找到的水平线段进行打包,通过所述数据分配单元回写至所述存储单元;或者,分别用于找完一条竖直线段后,将找到的竖直线段进行打包,通过所述数据分配单元回写至所述存储单元。
8.根据权利要求5所述的系统,其特征在于,所述数据处理单元的个数等于或者大于所述存储单元一个地址上支持存储数据的最大个数。
9.根据权利要求5所述的系统,其特征在于,
若所述水平条纹图像的一列激光散点的个数大于所述存储单元一个地址上支持存储数据的最大个数,所述存储单元在该地址存储从一列最上方开始计数的所述最大个数的激光散点的纵坐标或者从一列最下方开始计数的所述最大个数的激光散点的纵坐标;
或者,若所述竖直条纹图像的一行激光散点的个数大于所述存储单元一个地址上支持存储数据的最大个数,所述存储单元在该地址存储从一行最左侧开始计数的所述最大个数的激光散点的横坐标或者从一行最右侧开始计数的所述最大个数的激光散点的横坐标。
10.根据权利要求5所述的系统,其特征在于,所述寻线模块基于FPGA实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010570697.1A CN111724322B (zh) | 2020-06-19 | 2020-06-19 | 去除激光条纹图像噪点的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010570697.1A CN111724322B (zh) | 2020-06-19 | 2020-06-19 | 去除激光条纹图像噪点的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111724322A CN111724322A (zh) | 2020-09-29 |
CN111724322B true CN111724322B (zh) | 2023-08-22 |
Family
ID=72569756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010570697.1A Active CN111724322B (zh) | 2020-06-19 | 2020-06-19 | 去除激光条纹图像噪点的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111724322B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107657621A (zh) * | 2017-10-20 | 2018-02-02 | 南京林业大学 | 基于线性区域生长的二维激光点云序列实时分割方法 |
CN107730454A (zh) * | 2016-08-10 | 2018-02-23 | 苏州中科天启遥感科技有限公司 | 一种基于线追踪的线阵影像中横条纹噪声去除的改进算法 |
CN110675392A (zh) * | 2019-09-29 | 2020-01-10 | 山东科技大学 | 一种基于路面连续激光点云的车辙精细三维特征提取方法 |
CN111091508A (zh) * | 2019-12-10 | 2020-05-01 | 中国科学院武汉物理与数学研究所 | 基于彩色三维扫描激光雷达的彩色点云滤波方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4909232B2 (ja) * | 2007-10-16 | 2012-04-04 | キヤノン株式会社 | 情報処理装置、および画像処理装置、並びに、それらの方法 |
US10650531B2 (en) * | 2018-03-16 | 2020-05-12 | Honda Motor Co., Ltd. | Lidar noise removal using image pixel clusterings |
-
2020
- 2020-06-19 CN CN202010570697.1A patent/CN111724322B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107730454A (zh) * | 2016-08-10 | 2018-02-23 | 苏州中科天启遥感科技有限公司 | 一种基于线追踪的线阵影像中横条纹噪声去除的改进算法 |
CN107657621A (zh) * | 2017-10-20 | 2018-02-02 | 南京林业大学 | 基于线性区域生长的二维激光点云序列实时分割方法 |
CN110675392A (zh) * | 2019-09-29 | 2020-01-10 | 山东科技大学 | 一种基于路面连续激光点云的车辙精细三维特征提取方法 |
CN111091508A (zh) * | 2019-12-10 | 2020-05-01 | 中国科学院武汉物理与数学研究所 | 基于彩色三维扫描激光雷达的彩色点云滤波方法 |
Non-Patent Citations (1)
Title |
---|
激光扫描数据的密集噪声剔除方法;陈世超 等;《激光与光电子学进展》;20190331;第56卷(第06期);第214-221页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111724322A (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102028096B1 (ko) | 하이퍼바이저 기반의 가상 머신 격리 장치 및 방법 | |
EP3040868B1 (en) | Memory resource optimization method and apparatus | |
US8279227B2 (en) | Method for detecting collisions among large numbers of particles | |
CN105550126B (zh) | 高速缓冲存储器系统和操作高速缓冲存储器系统的方法 | |
CN106406987A (zh) | 一种集群中的任务执行方法及装置 | |
CN104112008A (zh) | 一种多表数据关联查询优化方法和装置 | |
JP2018073406A5 (zh) | ||
CN113342615A (zh) | 命令监控方法、装置、控制器、系统、设备和存储介质 | |
JP2019519015A (ja) | 動的で確率的なワークの削減を伴う幾何学的なワークスケジューリング | |
CN103902384A (zh) | 为虚拟机分配物理机的方法及装置 | |
CN111724322B (zh) | 去除激光条纹图像噪点的方法和系统 | |
CN110543279B (zh) | 一种数据存储、处理方法、装置及系统 | |
CN112685333A (zh) | 一种堆内存管理方法及装置 | |
US9001144B2 (en) | Image processing apparatus and method | |
CN108961316A (zh) | 图像处理方法、装置及服务器 | |
JP2008207216A (ja) | 鋼板の加工順序を決定する技術 | |
EP1089198A2 (en) | Content-based image searching | |
KR101807172B1 (ko) | 레이 트레이싱 장치 및 방법 | |
US20080170080A1 (en) | Method and Apparatus for Processing Object Collision | |
CN116301644A (zh) | 基于多硬盘协调的数据存储方法、系统、终端及介质 | |
US20130293543A1 (en) | Image processing apparatus and method | |
CN109522102A (zh) | 一种基于i/o调度的多任务外存模式图处理方法 | |
CN114742851A (zh) | 基于轮廓特征的多激光粉末床融合负载均衡方法和装置 | |
KR101989033B1 (ko) | 플랫폼 관리 장치 및 방법 | |
CN106327419A (zh) | Gpu显示列表中显存块的分配方法及装置 |
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 | ||
CB02 | Change of applicant information |
Address after: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Hangzhou Hikvision Robot Co.,Ltd. Address before: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province Applicant before: HANGZHOU HIKROBOT TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |