首页> 中国专利> 一种面向FPGA的高并行性光斑分割方法

一种面向FPGA的高并行性光斑分割方法

摘要

本发明涉及一种面向FPGA的高并行性光斑分割方法,属于图像处理领域,本发明为按照从左到右、从上到下依次读入2×2的像素区域,将这2×2的像素区域记为一个元组,当前元组记为c,上方元组记为t,右上方元组记为tr,左方元组记为l,每个元组包含1、2、3、4共4个像素,基于FPGA并行性的特点,该方法每次并行处理当前元组中的4个像素,主要步骤为:根据连通区域确定各元组像素的光斑编号、根据编号关联性整合数据;本发明具备灵活性、并行性、集成性的特点,可以实现图像边采集边处理,极大地提高了图像处理的速度。

著录项

  • 公开/公告号CN112330611A

    专利类型发明专利

  • 公开/公告日2021-02-05

    原文格式PDF

  • 申请/专利权人 南京航空航天大学;

    申请/专利号CN202011137224.9

  • 发明设计人 柏利志;张丽艳;

    申请日2020-10-22

  • 分类号G06T7/00(20170101);G06T7/11(20170101);G06T7/136(20170101);

  • 代理机构32237 江苏圣典律师事务所;

  • 代理人王慧颖

  • 地址 210016 江苏省南京市秦淮区御道街29号

  • 入库时间 2023-06-19 09:49:27

说明书

技术领域

本发明涉及图像处理领域,具体为一种面向FPGA的高并行性光斑分割方法。

背景技术

光斑是图像处理中常见的图像信息,光斑质心是光斑图像的重要特征,常用于视觉测量领域目标靶点的定位,高精度定位光斑质心的前提是准确地分割出光斑。

光斑分割方法有基于软件的方法和基于硬件的方法,基于软件的方法大多是图像采集完成后对整体图像进行分割操作,但是当图像分辨率较高或图像中光斑较多时,该类方法的实时性很难保证。此外,这类方法一般需要较大的数据存储空间来保存待处理的图像,尤其是在存储空间本身就有限的嵌入式系统中,更不适合该类方法。现有的基于硬件的方法能够实现对低分辨率图像边采集边处理,并且所需存储空间较小,但是该类方法一次只处理一个像素,因此当图像分辨率较高时,该类方法的高效性也很难保证。

发明内容

本发明针对现有技术中存在的问题,公开了一种面向FPGA的高并行性光斑分割方法,该方法每次同时处理4个像素,并将当前4个像素作为一个区域,通过分析该区域上方,右上方以及左方区域的属性,判断当前区域所有像素的光斑属性,最后分割出图像中的所有光斑,该方法解决了现有技术中的缺陷。

本发明是这样实现的:

一种面向FPGA的高并行性光斑分割方法,其特征在于,按照从左到右、从上到下依次读入2×2的像素区域,将这2×2的像素区域记为一个元组,当前元组记为c,上方元组记为t,右上方元组记为tr,左方元组记为l,每个元组包含1、2、3、4共4个像素,并且每次并行处理当前元组中的4个像素,通过分析当前元组上方,右上方以及左方元组的属性,判断当前元组中所有像素的光斑属性,最后分割出图像中的所有光斑;具体步骤包括:根据连通区域确定各元组像素的光斑编号、根据编号关联性整合数据、图像中所有元组处理完成后像素编号相同的属于同一光斑。

进一步,所述的确定各元组像素的光斑编号的具体步骤为:

步骤1:判断当前元组中c1像素是否为光斑像素:若c1像素的灰度大于预设阈值T,则其为光斑像素,否则为背景像素并编号为0;

步骤2:若当前元组中c1像素为光斑像素,则根据连通区域确定c1像素的光斑编号label_c1;依次根据c1像素上方、右上方、右右上方、左方、左下方像素编号(label_t3,label_t4,label_tr3,label_l2,label_l4)确定c1像素的光斑编号label_c1;

步骤3:判断当前元组中c2像素是否为光斑像素:若c2像素的灰度大于预设阈值T,则其为光斑像素,否则为背景像素并编号为0;

步骤4:若当前元组中c2像素为光斑像素,则根据连通区域确定c2像素的光斑编号label_c2。依次根据c2像素上方、右上方、左方、左左下方像素编号(label_t4,label_tr3,label_c1,label_l4)确定c2像素的光斑编号label_c2;

步骤5:判断当前元组中c3像素是否为光斑像素:若c3像素的灰度大于预设阈值T,则其为光斑像素,否则为背景像素并编号为0;

步骤6:若当前元组中c3像素为光斑像素,则根据连通区域确定c3像素的光斑编号label_c3;依次根据c3像素上方、右上方、左方像素编号(label_c1,label_c2,label_l4)确定c3像素的光斑编号label_c3;

步骤7:判断当前元组中c4像素是否为光斑像素:若c4像素的灰度大于预设阈值T,则其为光斑像素,否则为背景像素并编号为0;

步骤8:若当前元组中c4像素为光斑像素,则根据连通区域确定c4像素的光斑编号label_c4;依次根据c4像素上方、左方像素编号(label_c2,label_c3)确定c4像素的光斑编号label_c4;

进一步,所述的步骤1~步骤8中,步骤1、2,步骤3、4,步骤5、6,步骤7、8是并行的,其中:

确定c1像素的光斑编号label_c1的具体步骤为:若上方像素为光斑像素,则label_c1=label_t3;否则,若右上方像素为光斑像素,则label_c1=label_t4;否则,若c2像素和tr3像素灰度均大于阈值T,则label_c1=label_tr3;否则,若左方像素为光斑像素,则label_c1=label_l2;否则,若左下方像素为光斑像素,则label_c1=label_l4;否则,c1像素为新的光斑像素,使用新的标签对其编号;

确定c2像素的光斑编号label_c2的步骤具体为:若上方像素为光斑像素,则label_c2=label_t4;否则,若右上方像素为光斑像素,则label_c2=label_tr3;否则,若左方像素为光斑像素,则label_c2=label_c1,在这一过程中需要通过步骤1、2判断c1像素是否为光斑像素,并确定c1像素的编号;否则,若c3像素和l4像素灰度均大于阈值T,则label_c2=label_l4;否则,c2像素为新的光斑像素,使用新的标签对其编号;

确定c3像素的光斑编号label_c3的具体步骤为:若上方像素为光斑像素,则label_c3=label_c1,在这一过程中需要通过步骤1、2判断c1像素是否为光斑像素,并确定c1像素的编号;否则,若右上方像素为光斑像素,则label_c3=label_c2,在这一过程中需要通过步骤3、4判断c2像素是否为光斑像素,并确定c2像素的编号;否则,若左方像素为光斑像素,则label_c3=label_l4;否则,c3像素为新的光斑像素,使用新的标签对其编号;

确定c4像素的光斑编号label_c4的具体步骤为:若上方像素为光斑像素,则label_c4=label_c2,在这一过程中需要通过步骤3、4判断c2像素是否为光斑像素,并确定c2像素的编号;否则,若左方像素为光斑像素,则label_c4=label_c3,在这一过程中需要通过步骤5、6判断c3像素是否为光斑像素,并确定c3像素的编号;否则,c4像素为新的光斑像素,使用新的标签对其编号。

进一步,所述的根据编号关联性整合数据过程如下:当前元组中所有像素编号完成后,从该元组开始向左取3个连续的元组,比较3个元组中的编号,若不同,则将较大的编号更改为3个元组中最小的编号。

本发明与现有技术相比其有益效果在于:本发明中的方法能够实现高分辨率图像的边采集边处理,该方法利用FPGA高并行性的特点,每次并行处理同一区域中的4个像素,极大地提高了图像处理速度。同时,基于该方法在线处理的特点,使用较小内存便能满足需求。

附图说明

图1为本发明一种面向FPGA的高并行性光斑分割方法中的光斑元组划分示意图;

图2为本发明一种面向FPGA的高并行性光斑分割方法中确定c1像素编号流程图;

图3为本发明一种面向FPGA的高并行性光斑分割方法中确定c2像素编号流程图;

图4为本发明一种面向FPGA的高并行性光斑分割方法中确定c3像素编号流程图;

图5为本发明一种面向FPGA的高并行性光斑分割方法中确定c4像素编号流程图;

图6为本发明实施例中数据整合前编号示意图;

图7为本发明实施例中数据整合后编号示意图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚,明确,以下列举实例对本发明进一步详细说明。应当指出此处所描述的具体实施仅用以解释本发明,并不用于限定本发明。

本发明一种面向FPGA的高并行性光斑分割方法为:按照从左到右、从上到下依次读入2×2的像素区域,将这2×2的像素区域记为一个元组,当前元组记为c,上方元组记为t,右上方元组记为tr,左方元组记为l,每个元组包含1、2、3、4共4个像素,具体如图1所示。基于FPGA并行性的特点,该方法在每次并行处理当前元组中的4个像素,主要包括以下步骤:根据连通区域确定各元组像素的光斑编号、根据编号关联性整合数据。

确定各元组像素的光斑编号步骤如下:

步骤1:判断当前元组中c1像素是否为光斑像素。若c1像素的灰度大于预设阈值T,则其为光斑像素,否则为背景像素并编号为0;

步骤2:若当前元组中c1像素为光斑像素,则根据连通区域确定c1像素的光斑编号label_c1。依次根据c1像素上方、右上方、右右上方、左方、左下方像素编号(label_t3,label_t4,label_tr3,label_l2,label_l4)确定c1像素的光斑编号label_c1。具体为:若上方像素为光斑像素,则label_c1=label_t3;否则,若右上方像素为光斑像素,则label_c1=label_t4;否则,若c2像素和tr3像素灰度均大于阈值T,则label_c1=label_tr3;否则,若左方像素为光斑像素,则label_c1=label_l2;否则,若左下方像素为光斑像素,则label_c1=label_l4;否则,c1像素为新的光斑像素,使用新的标签对其编号。该过程流程图如图2所示。

步骤3:判断当前元组中c2像素是否为光斑像素。若c2像素的灰度大于预设阈值T,则其为光斑像素,否则为背景像素并编号为0;

步骤4:若当前元组中c2像素为光斑像素,则根据连通区域确定c2像素的光斑编号label_c2。依次根据c2像素上方、右上方、左方、左左下方像素编号(label_t4,label_tr3,label_c1,label_l4)确定c2像素的光斑编号label_c2。具体为:若上方像素为光斑像素,则label_c2=label_t4;否则,若右上方像素为光斑像素,则label_c2=label_tr3;否则,若左方像素为光斑像素,则label_c2=label_c1,在这一过程中需要通过步骤1、2判断c1像素是否为光斑像素,并确定c1像素的编号;否则,若c3像素和l4像素灰度均大于阈值T,则label_c2=label_l4;否则,c2像素为新的光斑像素,使用新的标签对其编号。该过程流程图如图3所示。

步骤5:判断当前元组中c3像素是否为光斑像素。若c3像素的灰度大于预设阈值T,则其为光斑像素,否则为背景像素并编号为0;

步骤6:若当前元组中c3像素为光斑像素,则根据连通区域确定c3像素的光斑编号label_c3。依次根据c3像素上方、右上方、左方像素编号(label_c1,label_c2,label_l4)确定c3像素的光斑编号label_c3。具体为:若上方像素为光斑像素,则label_c3=label_c1,在这一过程中需要通过步骤1、2判断c1像素是否为光斑像素,并确定c1像素的编号;否则,若右上方像素为光斑像素,则label_c3=label_c2,在这一过程中需要通过步骤3、4判断c2像素是否为光斑像素,并确定c2像素的编号;否则,若左方像素为光斑像素,则label_c3=label_l4;否则,c3像素为新的光斑像素,使用新的标签对其编号。该过程流程图如图4所示。

步骤7:判断当前元组中c4像素是否为光斑像素。若c4像素的灰度大于预设阈值T,则其为光斑像素,否则为背景像素并编号为0;

步骤8:若当前元组中c4像素为光斑像素,则根据连通区域确定c4像素的光斑编号label_c4。依次根据c4像素上方、左方像素编号(label_c2,label_c3)确定c4像素的光斑编号label_c4。具体为:若上方像素为光斑像素,则label_c4=label_c2,在这一过程中需要通过步骤3、4判断c2像素是否为光斑像素,并确定c2像素的编号;否则,若左方像素为光斑像素,则label_c4=label_c3,在这一过程中需要通过步骤5、6判断c3像素是否为光斑像素,并确定c3像素的编号;否则,c4像素为新的光斑像素,使用新的标签对其编号。该过程流程图如图5所示。根据编号关联性整合数据过程如下:如图6所示,当前元组中所有像素编号完成后,从该元组开始向左取3个连续的元组,比较3个元组中的编号,若不同,则将较大的编号更改为3个元组中最小的编号,如图7所示。图像中所有元组处理完成后像素编号相同的属于同一光斑。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,这些改进也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号