轮廓连接方法及装置的制造方法
【技术领域】
[0001]本发明涉及图像处理技术领域,具体而言,涉及一种轮廓连接方法及装置。
【背景技术】
[0002]图像检测作为一种高效的自动化检测方式,通过对目标图像的像素分布、亮度和对比度等信息的识别和分析,检测目标的性质或者缺陷等。通常,图像检测软件在接收到图像后,首先确定图像的轮廓,进而通过轮廓确定图像所包含的区域。其中,图像的轮廓由边缘点组成,因此,相关技术中,首先检测图像中的边缘点,然后,将边缘点连接得到轮廓。
[0003]边缘点检测常用的算法可以包括sobel算法、Prewitt算法、Roberts算法、Krich算法和Canny算法等。其中,由于使用Canny算法得到的检测结果相对较为精确,因此,Canny算法的使用较为广泛。具体的,使用Canny算法检测边缘点时,第一步,对图像的每个像素进行高斯计算,滤除图像在拍摄和传输时夹杂的噪声,得到平滑的图像;第二步,计算平滑图像中每个像素的梯度值和方向;第三步,由于梯度值较高的像素比较有可能是边缘点,因此,本步骤在所确定的像素方向上,取其前、后像素的梯度值,保留其中梯度值最大的像素的灰度值,将另外两个像素的灰度值设置为0,以筛选出局部梯度值最大的像素作为边缘点;第四步,根据所筛选的梯度值设定高、低阈值,并分别将梯度值小于高阈值的边缘点灰度值设置为0,得到图像1,将梯度值小于低阈值的边缘点灰度值设置为0,得到图像2。由于图像2所保留的边缘点较多,因此,对比图像1和图像2中相同的边缘信息,将同一轮廓上,图像1中不存在而图像2中存在的边缘点添加到图像1中,并连接图像1中最后确定的边缘点得到该轮廓。
[0004]由此可见,高阈值的作用在于确定相对显著的边缘点,得到轮廓的显著轮廓,低阈值的作用在于筛选出相对模糊的边缘点,对已经得到的轮廓的显著轮廓进行补充,如果低阈值设置的较小,则会检测到虚假边缘点,导致所确定的轮廓失真;而如果低阈值设置的较大,则无法准确的检测出边缘点中对比度相对较弱的点,造成所连接的轮廓断裂,因此,通常按照经验值设定低阈值。然而,即使按照经验值设置低阈值,仍不可避免的存在部分对比度相对较弱的点无法检测出,导致得到的轮廓依然存在断裂,无法得到完整的轮廓。
【发明内容】
[0005]鉴于相关技术中存在的技术问题,本发明实施例提供了一种轮廓连接方法及装置,以解决无法得到完整轮廓的问题。
[0006]第一方面,本发明实施例提供了一种轮廓连接方法,包括:在按照双阈值法得到图像的基础轮廓之后,从所述基础轮廓中查找断裂轮廓;将所述断裂轮廓的断裂边缘点中的一点作为目标边缘点,分别计算其他所述断裂边缘点与所述目标边缘点的距离;当所述断裂边缘点与所述目标边缘点的距离小于预设阈值时,确定所述断裂边缘点与所述目标边缘点的连接位置,其中,所述连接位置是所述断裂边缘点与所述目标边缘点距离最小时,所述断裂边缘点的位置;计算所述断裂边缘点与所述目标边缘点之间形成的虚拟轮廓,和所述断裂边缘点或所述目标边缘点所在断裂轮廓的角度差;当所述虚拟轮廓与所述断裂轮廓的角度差小于预设的角度阈值时,连接所述目标边缘点与所述断裂边缘点。
[0007]优选的,所述确定所述断裂边缘点与所述目标边缘点的连接位置,包括:按照预设方向将所述断裂边缘点向其相邻的位置移动一个像素的距离,并将移动后的位置作为所述断裂边缘点的新位置,其中,所述预设方向与所述断裂边缘点所在的断裂轮廓的轨迹方向一致;计算所述断裂边缘点位于所述新位置时与所述目标边缘点的距离;判断所述断裂边缘点位于所述新位置时与所述目标边缘点的距离是否小于所述断裂边缘点位于原位置时与所述目标边缘点的距离;如果所述断裂边缘点位于所述新位置时与所述目标边缘点的距离小于所述断裂边缘点位于原位置时与所述目标边缘点的距离,则重复执行按照预设方向将所述断裂边缘点向其相邻的位置移动一个像素的距离,并将移动后的位置作为所述断裂边缘点的新位置的步骤,直到所述断裂边缘点与所述目标边缘点的距离最小时,将所述新位置确定为最佳位置;如果所述断裂边缘点位于所述新位置时与所述目标边缘点的距离大于所述断裂边缘点位于原位置时与所述目标边缘点的距离,按照与所述预设方向相反的方向将所述断裂边缘点向其相邻的位置移动一个像素的距离,并将移动后的位置作为所述断裂边缘点的新位置,并重复执行计算所述断裂边缘点位于所述新位置时与所述目标边缘点的距离的步骤,直到所述断裂边缘点与所述目标边缘点的距离最小时,将所述新位置确定为最佳位置。
[0008]优选的,所述计算所述断裂边缘点与所述目标边缘点之间形成的虚拟轮廓,和所述断裂边缘点或所述目标边缘点所在断裂轮廓的角度差,包括:以所述目标边缘点为起点,将所述目标边缘点所在的断裂轮廓的前三个像素确定为第一参考轮廓;将以所述目标边缘点为起点时,所述断裂轮廓上的走向方向作为所述第一参考轮廓的方向,确定所述第一参考轮廓的角度;将所述断裂边缘点指向所述目标边缘点的方向作为所述虚拟轮廓的方向,确定所述虚拟轮廓的角度;计算所述第一参考轮廓角度与所述虚拟轮廓角度的角度差。
[0009]优选的,所述计算所述断裂边缘点与所述目标边缘点之间形成的虚拟轮廓,和所述断裂边缘点或所述目标边缘点所在断裂轮廓的角度差,包括:以所述断裂边缘点为起点,将所述断裂边缘点所在的断裂轮廓的前三个像素确定为第二参考轮廓;将以所述断裂边缘点为起点时,所述断裂轮廓上的走向方向作为所述第二参考轮廓的方向,确定所述第二参考轮廓的角度;将所述目标边缘点指向所述断裂边缘点的方向作为所述虚拟轮廓的方向,确定所述虚拟轮廓的角度;计算所述第二参考轮廓角度与所述虚拟轮廓角度的角度差。
[0010]优选的,所述从所述基础轮廓中查找断裂轮廓,包括:从一条基础轮廓中选择一个边缘点作为起始边缘点;从所述起始边缘点开始按照一定方向遍历所述基础轮廓的边缘点;当遍历到所述基础轮廓的终点边缘点时,判断所述终点边缘点与所述起始边缘点是否为同一个边缘点;如果所述终点边缘点与所述起始边缘点是同一个边缘点,则将所述基础轮廓确定为完整轮廓;如果所述终点边缘点与所述起始边缘点不是同一个边缘点,则将所述基础轮廓确定为断裂轮廓。
[0011]第二方面,本发明实施例还提供了一种轮廓连接装置,包括:查找模块,用于在按照双阈值法得到图像的基础轮廓之后,从所述基础轮廓中查找断裂轮廓;计算模块,用于将所述查找模块所查找的断裂轮廓的断裂边缘点中的一点作为目标边缘点,分别计算其他所述断裂边缘点与所述目标边缘点的距离;确定模块,用于当所述断裂边缘点与所述目标边缘点的距离小于预设阈值时,确定所述断裂边缘点与所述目标边缘点的连接位置,其中,所述连接位置是所述断裂边缘点与所述目标边缘点距离最小时,所述断裂边缘点的位置;所述计算模块,还用于计算所述断裂边缘点与所述目标边缘点之间形成的虚拟轮廓,和所述断裂边缘点或所述目标边缘点所在断裂轮廓的角度差;连接模块,用于在所述计算模块计算得到所述虚拟轮廓与所述断裂轮廓的角度差小于预设的角度阈值时,连接所述目标边缘点与所述断裂边缘点。
[0012]优选的,所述确定模块包括移动单元、计算单元和第一判断单元,其中,所述移动单元,用于按照预设方向将所述断裂边缘点向其相邻的位置移动一个像素的距离,并将移动后的位置作为所述断裂边缘点的新位置,其中,所述预设方向与所述断裂边缘点所在的断裂轮廓的轨迹方向一致;所述计算单元,用于计算所述断裂边缘点位于所述新位置时与所述目标边缘点的距离;所述第一判断单元,用于判断所述断裂边缘点位于所述新位置时与所述目标边缘点的距离是否小于所述断裂边缘点位于原位置时与所述目标边缘点的距离;所述移动单元,还用于在