图像检测区域的确定方法及装置与流程

文档序号:14058303阅读:260来源:国知局
图像检测区域的确定方法及装置与流程

本发明涉及外观缺陷检测技术领域,更具体地,涉及一种图像检测区域的确定方法及装置。



背景技术:

机器视觉检测是指通过相机对物体进行拍摄,然后对拍摄得到的图像进行处理,以检测物体中的特征的技术,进而得到物体的质量情况。

机器视觉检测应用越来越广泛,主要应用于尺寸测量和外观缺陷检测。其中,外观缺陷检测对提高整个产品的质量起着决定性作用。机器视觉检测需要一个合适的检测区域,以避免其他区域的特征的干扰。

目前,由于物体的形状的多样性,造成对拍摄得到的图像需要设置不同的检测区域,进而需要开发不同的检测程序。检测程序的多样性,导致整个检测设备的维护工作量大。

因此,需要提供一种新的技术方案,针对上述现有技术中的技术问题进行改进。



技术实现要素:

本发明的一个目的是提供一种图像检测区域的确定方法的新技术方案。

根据本发明的第一方面,提供了一种图像检测区域的确定方法,包括:

从待检测物体对应的检测图像中,获取所述待检测物体对应的图像中的像素点;

对所述待检测物体对应的图像中的像素点进行处理,得到所述待检测物体的至少一条轮廓对应的像素点;

分别为所述待检测物体的至少一条轮廓对应的各像素点计算得到所述各像素点对应的梯度方向;

沿为所述各像素点计算得到的梯度方向,获取至少一个像素单位的像素点;

将所述各像素点和沿为所述各像素点计算得到的梯度方向获取的至少一个像素点进行组合,形成像素点组合区域,并将所述像素点组合区域作为图像检测区域。

可选地,所述检测图像为灰度图像,且所述检测图像包括有待检测物体对应的图像和背景图像,

从待检测物体对应的检测图像中,获取所述待检测物体对应的图像中的像素点,包括:

利用blob算法,对所述检测图像的各像素点进行分割处理,得到所述待检测物体对应的图像中的像素点和所述背景图像中的像素点。

可选地,对所述待检测物体对应的图像中的像素点进行处理,得到所述待检测物体的至少一条轮廓对应的像素点,包括:

利用blob算法,对所述待检测物体对应的图像中的像素进行分块处理,得到多组像素点;

将各组像素点中的最外侧像素点作为所述待检测物体的至少一条轮廓对应的像素点。

可选地,在将各组像素点中的最外侧像素点作为所述待检测物体的至少一条轮廓对应的像素点之前,所述方法还包括:

计算所述多组像素点中的最外侧像素点形成的区域的面积或周长;

将所述多组像素点中的最外侧像素点形成的区域的面积或周长与预设轮廓面积阈值或预设轮廓周长阈值进行比对,得到比对结果;

根据所述比对结果,确定出满足用户需求的至少一组像素点;

将各组像素点中的最外侧像素点作为所述待检测物体的至少一条轮廓对应的像素点,包括:

将所述满足用户需求的至少一组像素点中的最外侧像素点作为所述待检测物体的至少一条轮廓对应的像素点。

可选地,分别为所述待检测物体的至少一条轮廓对应的各像素点计算得到所述各像素点对应的梯度方向,包括:

获取所述待检测物体的至少一条轮廓对应的各像素点相邻的8个像素点的灰度值;

根据所述各像素点相邻的8个像素点的灰度值,计算得到所述各像素点对应的梯度方向。可选地,以所述检测图像的长度方向作为x轴方向,以所述检测图像的宽度方向作为y轴方向,

根据所述各像素点相邻的8个像素点的灰度值,计算得到所述各像素点的梯度方向,包括:

基于以下计算式,得到所述各像素点沿所述x轴方向的梯度幅值magnitudex,和沿所述y轴方向的梯度幅值magnitudey,

magnitudex={(p3-p1)+[2×(p5-p4)]+(p8-p6)}/4

magnitudey={(p6-p1)+[2×(p7-p2)]+(p8-p3)}/4

其中,p1、p2、p3、p4、p5、p6、p7、p8分别代表位于当前像素点的左上角、正上方、右上角、正左方、正右方、左下角、正下方和右下角的像素点的灰度值;

基于以下计算式,得到梯度角度α,

α=atan2(magnitudey,magnitudex),

根据所述梯度角度α,得到所述各像素点的梯度方向。

根据本发明的第二方面,提供了一种图像检测区域的确定装置,包括:

第一获取模块,用于从待检测物体对应的检测图像中,获取所述待检测物体对应的图像中的像素点;

处理模块,用于对所述待检测物体对应的图像中的像素点进行处理,得到所述待检测物体的至少一条轮廓对应的像素点;

设置模块,用于分别为所述待检测物体的至少一条轮廓对应的各像素点计算得到所述各像素点对应的梯度方向;

第二获取模块,用于沿为所述各像素点计算得到的梯度方向,获取至少一个像素单位的像素点;

组合模块,用于将所述各像素点和沿为所述各像素点计算得到的梯度方向获取的至少一个像素点进行组合,形成像素点组合区域,并将所述像素点组合区域作为图像检测区域。

可选地,所述检测图像为灰度图像,且所述检测图像包括有待检测物体对应的图像和背景图像,

所述第一获取模块还用于:利用blob算法,对所述检测图像的各像素点进行分割处理,得到所述待检测物体对应的图像中的像素点和所述背景图像中的像素点。

可选地,所述处理模块还用于:

利用blob算法,对所述待检测物体对应的图像中的像素进行分块处理,得到多组像素点;

将各组像素点中的最外侧像素点作为所述待检测物体的至少一条轮廓对应的像素点。

根据本发明的第三方面,提供了一种图像检测区域的确定装置,其特征在于,包括:存储器和处理器,其中,所述存储器存储可执行指令,所述可执行指令控制所述处理器进行操作以执行上述任何一项所述的图像检测区域的确定方法。

本发明提供的图像检测区域的确定方法及装置,适用于不同形状的物体的检测,相对于现有技术,不再需要开发不同的检测程序,进而避免了由于检测程序的多样性导致的整个检测设备的维护工作量大的问题。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1示出了根据本发明一个实施例的图像检测区域的确定方法的处理流程图。

图2示出了根据本发明一个实施例的位于轮廓上的像素点的示意图。

图3示出了根据本发明一个实施例的梯度方向的示意图。

图4示出了根据本发明一个实施例的检测图像的示意图。

图5示出了根据本发明一个实施例的图像检测区域的确定装置的结构示意图。

图6示出了根据本发明一个实施例的图像检测区域的确定装置的另一种结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明的一个实施例提供了一种图像检测区域的确定方法。图1示出了根据本发明一个实施例的图像检测区域的确定方法的处理流程图。参见图1,该方法至少包括以下步骤s101至步骤s105。

步骤s101,从待检测物体对应的检测图像中,获取待检测物体对应的图像中的像素点;

步骤s102,对待检测物体对应的图像中的像素点进行处理,得到待检测物体的至少一条轮廓对应的像素点;

步骤s103,分别为待检测物体的至少一条轮廓对应的各像素点计算得到各像素点对应的梯度方向;

步骤s104,沿为各像素点计算得到的梯度方向,获取至少一个像素单位的像素点;

步骤s105,将各像素点和沿为各像素点计算得到的梯度方向获取的至少一个像素点进行组合,形成像素点组合区域,并将像素点组合区域作为图像检测区域。

本发明涉及的检测图像为利用相机对待检测物体进行拍摄得到的图像。该检测图像为灰度图像。灰度图像通常显示为从最暗黑色到最亮的白色的灰度,这样可以有256级灰度。

本发明的一个实施例中,检测图像既包括有待检测物体对应的图像,又包括背景图像。需要说明地是,待检测物体对应的图像和背景图像具有高的对比度,以便于后续的分割处理。

本发明的一个实施例中,利用blob算法,对检测图像的各像素点进行分割处理,得到待检测物体对应的图像中的像素点和背景图像中的像素点。blob算法是对检测图像中相同像素的连通域进行分析,该连通域称为blob。具体地,预设一个灰度阈值,将检测图像的各像素点的灰度值分别与该灰度阈值进行比对,根据比对结果确定该像素点为待检测物体对应的图像中的像素点,或者为背景图像中的像素点。例如,将待检测物体放置在一个白色背景板上进行拍摄,得到灰度图像,其中,待检测物体不是白色物体,利用blob算法对该灰度图像中的各像素点进行分割处理,其中,预设灰度阈值为254,将灰度图像中的各像素点的灰度值分别与预设灰度阈值进行比对,当某一像素点的灰度值大于254时,确定该像素点为背景图像中的像素点,当某一像素点的灰度值小于254时,确定该像素点为待检测物体对应的图像中的像素点。需要说明地是,预设灰度阈值254仅仅是作为一个示例,对本发明并不造成任何限定。预设灰度阈值可为0到255之间的任意值。另外,预设灰度阈值可根据待检测物体对应的图像的亮度和背景图像的亮度进行设置。

在获取到待检测物体对应的图像中的像素点之后,本发明的一个实施例中,利用blob算法,对待检测物体对应的图像中的像素点进行分块处理,得到多组像素点,其中,每一组像素点中的各像素点的灰度值相同或相近,此处涉及的各像素点的灰度值相近为各像素点的灰度值的差值在预设灰度差值范围内。然后,将各组像素点中的最外侧像素点作为待检测物体的至少一条轮廓对应的像素点。

本发明的一个实施例中,利用blob算法,对待检测物体对应的图像中的像素点进行分块处理后,得到多组像素点,每一组像素点可对应一个区域,每一个区域可对应至少一个轮廓,这样可得到多个轮廓。根据用户的需求,可能不需要对得到的所有轮廓进行质量检测,此时,首先,计算多组像素点中的最外侧像素点形成的区域的面积,然后,将多组像素点中的最外侧像素点形成的区域的面积分别与预设轮廓面积阈值进行比对,得到比对结果,从比对结果中,将超过预设轮廓面积阈值的像素点组筛选出来。或者,首先,计算多组像素点中的最外侧像素点形成的区域的周长,然后,将多组像素点中的最外侧像素点形成的区域的周长分别与预设轮廓周长阈值进行比对,得到比对结果,从比对结果中,将超过预设轮廓周长阈值的像素点组筛选出来。这样可得到满足用户需求的、待检测物体对应的至少一条轮廓对应的像素点。

在得到待检测物体的至少一条轮廓对应的像素点之后,计算各像素点对应的梯度方向。本发明的一个实施例中,首先,获取待检测物体的至少一条轮廓对应的各像素点相邻的8个像素点的灰度值,然后,根据各像素点相邻的8个像素点的灰度值,计算得到各像素点对应的梯度方向。

图2示出了根据本发明一个实施例的位于轮廓上的像素点的示意图。参见图2,图中示出的每一个方格代表一个像素点,带有灰度的图像为待检测物体对应的部分图像。图2示出的待检测物体的轮廓为一曲线,像素点a位于待检测物体的轮廓上。以像素点a为例,对确定像素点a对应的梯度方向进行说明。首先,基于计算式(1)和计算式(2),得到像素点a沿x轴方向的梯度幅值magnitudex和沿y轴方向的梯度幅值magnitudey,

magnitudex={(p3-p1)+[2×(p5-p4)]+(p8-p6)}/4—计算式(1),

magnitudey={(p6-p1)+[2×(p7-p2)]+(p8-p3)}/4—计算式(2),

其中,p1、p2、p3、p4、p5、p6、p7、p8分别代表位于像素点a的左上角、正上方、右上角、正左方、正右方、左下角、正下方和右下角的像素点的灰度值。然后,基于计算式(3),得到梯度角度α,

α=atan2(magnitudey,magnitudex)—计算式(3)。

最后,根据梯度角度α,得到像素点a的梯度方向。图3示出了根据本发明一个实施例的梯度方向的示意图。参见图3,梯度方向共包括8个方向。每一个梯度方向对应一个梯度角度范围。第一梯度方向对应的梯度角度范围为(-22.5°,22.5°],第二梯度方向对应的梯度角度范围为(22.5°,67.5°],第三梯度方向对应的梯度角度范围为(67.5°,112.5°],第四梯度方向对应的梯度角度范围为(112.5°,157.5°],第五梯度方向对应的梯度角度范围为(157.5°,180°]和(-180°,-157.5°],第六梯度方向对应的梯度角度范围为(-157.5°,-112.5°],第七梯度方向对应的梯度角度范围为(-112.5°,-67.5°],第八梯度方向对应的梯度角度范围为(-67.5°,-22.5°]。根据计算式(3)得到的梯度角度α,确定该梯度角度α位于哪一个梯度角度范围内,进而确定像素点a对应的梯度方向。以像素点a作为起点,沿着像素点a的梯度方向获取至少一个像素单位的像素点。

下面一个具体实施例对本发明提供的图像检测区域的确定方法进行进一步说明。

图4示出了根据本发明一个实施例的检测图像的示意图。参见图4,该检测图像包括有黑色物料对应的图像和白色背景对应的图像。黑色物料为一方形物料,且在其中心区域开设有一个方形通孔。首先,利用blob算法,对图4示出的检测图像的各像素点进行分割处理,得到黑色物料对应的图像中的像素点和白色背景图像中的像素点。然后,利用blob算法对黑色物料对应的图像中的像素点进行分块处理,由于黑色物料对应的图像中的各像素点的灰度值为0,则得到一组像素点。将该组像素点中的最外侧像素点作为黑色物料的轮廓对应的像素点。参见图4,通过该组像素点可得到两个轮廓,即第一轮廓和第二轮廓。假设第一轮廓和第二轮廓分别包含2000和1000个点,分别为第一轮廓对应的各像素点和第二轮廓对应的各像素点计算得到梯度方向。接着,沿各像素点的梯度方向,获取5个像素单位上的像素点。这样,将得到分别针对第一轮廓和第二轮廓的5×2000和5×1000个像素点,将5×2000个像素点组成的第一边界图像,以及将5×1000个像素点组成的第二边界图像。第一边界图像和第二边界图像作为缺陷检测用图像。本发明实施例中,优选采用直方图分析或者斑点检测等方法对图像检测区域进行质量检测,例如,外观缺陷检测。

基于同一发明构思,本发明提供了一种图像检测区域的确定装置。图5示出了根据本发明一个实施例的图像检测区域的确定装置的结构示意图。参见图5,该装置至少包括:第一获取模块510,用于从待检测物体对应的检测图像中,获取待检测物体对应的图像中的像素点;处理模块520,用于对待检测物体对应的图像中的像素点进行处理,得到待检测物体的至少一条轮廓对应的像素点;设置模块530,用于分别为待检测物体的至少一条轮廓对应的各像素点计算得到各像素点对应的梯度方向;第二获取模块540,用于沿为各像素点计算得到的梯度方向,获取至少一个像素单位的像素点;组合模块550,用于将各像素点和沿为各像素点计算得到的梯度方向获取的至少一个像素点进行组合,形成像素点组合区域,并将像素点组合区域作为图像检测区域。

本发明的一个实施例中,检测图像为灰度图像,且检测图像包括有待检测物体对应的图像和背景图像,

本发明的一个实施例中,第一获取模块510还用于:利用blob算法,对检测图像的各像素点进行分割处理,得到待检测物体对应的图像中的像素点和背景图像中的像素点。

本发明的一个实施例中,处理模块520还用于:利用blob算法,对待检测物体对应的图像中的像素进行分块处理,得到多组像素点;将各组像素点中的最外侧像素点作为待检测物体的至少一条轮廓对应的像素点。

本发明的一个实施例中,处理模块520还用于:计算多组像素点中的最外侧像素点形成的区域的面积或周长;将多组像素点中的最外侧像素点形成的区域的面积或周长与预设轮廓面积阈值或预设轮廓周长阈值进行比对,得到比对结果;根据比对结果,确定出满足用户需求的至少一组像素点;将满足用户需求的至少一组像素点中的最外侧像素点作为待检测物体的至少一条轮廓对应的像素点。

图6示出了根据本发明一个实施例的图像检测区域的确定装置的另一种结构示意图。参见图6,该装置至少包括:存储器620和处理器610,其中,存储器620存储可执行指令,可执行指令控制处理器610进行操作以执行上述任何一项的图像检测区域的确定方法。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1