一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种锚网孔同行列中心点匹配方法及系统

2022-07-02 12:48:31 来源:中国专利 TAG:


1.本发明涉及煤矿巷道支护领域,特别是涉及一种锚网孔同行列中心点匹配方法及系统。


背景技术:

2.煤矿巷道掘进后为了安全需要对岩壁进行支护作业,在进行锚网支护时,锚杆穿过锚网打入岩壁对锚网固定。为了减轻对锚网的破坏打锚杆时需要从锚网的中心点打入,现有图像语义分割与目标检测方法已经能在低光照下找到锚网的位置和锚网孔中心点的位置,打锚杆的位置一般位于锚网孔的同行或者同列可以使锚网受力均匀。但是正常情况下识别到的锚网中心是一系列离散的平面点,不能确定哪些点是属于锚网同行或者同列的,为了解决任意一点同行列点的匹配方法,本发明提出了一种锚网孔同行列中心点匹配方法及系统。


技术实现要素:

3.本发明的目的是提供一种锚网孔同行列中心点匹配方法及系统,通过本发明达到了对任意角度拍摄的锚网图像同行列中心点匹配的目的。
4.为实现上述目的,本发明提供了如下方案:
5.一种锚网孔同行列中心点匹配方法,该方法包括以下步骤:
6.确定原锚网图像的中心点坐标;
7.根据所述中心点坐标确定目标锚网轮廓,所述目标锚网轮廓为距离所述中心点坐标最近的锚网轮廓;
8.确定所述目标锚网轮廓的四个角点;
9.将所述原锚网图像进行直角坐标系转换,得到转换后的图像;
10.确定所述转换后的图像的四个角点,所述转换后的图像的四个角点位于所述转换后的图像中心;
11.根据所述目标锚网轮廓的四个角点和所述转换后的图像的四个角点计算单应矩阵,所述单应矩阵用于将一个平面内的图像以任意方式转换到另一个平面;
12.根据所述单应矩阵确定所述原锚网图像中所有锚网孔中心点在所述转换后的图像中的坐标;
13.根据三角剖分算法确定所述转换后的图像中每个锚网孔中心点的相邻点;
14.根据预设阈值去除所述相邻点中非水平或者垂直的点,得到第一剩余相邻点;
15.去除所述第一剩余相邻点中在同方向上相邻点距离较远的点,得到第二剩余相邻点;
16.采用数对表示所述第二剩余相邻点之间的位置关系;
17.根据所述位置关系使用递归算法查找某一点所在的行列中所有点。
18.本发明还提供了一种锚网孔同行列中心点匹配系统,该系统包括:
19.中心点坐标确定模块,用于确定原锚网图像的中心点坐标;
20.目标锚网轮廓确定模块,用于根据所述中心点坐标确定目标锚网轮廓,所述目标锚网轮廓为距离所述中心点坐标最近的锚网轮廓;
21.第一角点确定模块,用于确定所述目标锚网轮廓的四个角点;
22.转换模块,用于将所述原锚网图像进行直角坐标系转换,得到转换后的图像;
23.第二角点确定模块,用于确定所述转换后的图像的四个角点,所述转换后的图像的四个角点位于所述转换后的图像中心;
24.单应矩阵计算模块,用于根据所述目标锚网轮廓的四个角点和所述转换后的图像的四个角点计算单应矩阵,所述单应矩阵用于将一个平面内的图像以任意方式转换到另一个平面;
25.转换坐标确定模块,用于根据所述单应矩阵确定所述原锚网图像中所有锚网孔中心点在所述转换后的图像中的坐标;
26.相邻点确定模块,用于根据三角剖分算法确定所述转换后的图像中每个锚网孔中心点的相邻点;
27.第一剩余相邻点获取模块,用于根据预设阈值去除所述相邻点中非水平或者垂直的点,得到第一剩余相邻点;
28.第二剩余相邻点获取模块,用于去除所述第一剩余相邻点中在同方向上相邻点距离较远的点,得到第二剩余相邻点;
29.表示模块,用于采用数对表示所述第二剩余相邻点之间的位置关系;
30.查找模块,用于根据所述位置关系使用递归算法查找某一点所在的行列中所有点。
31.根据本发明提供的具体实施例,本发明公开了以下技术效果:
32.本发明提供了一种锚网孔同行列中心点匹配方法及系统,所述方法,包括以下步骤:确定原锚网图像的中心点坐标;根据所述中心点坐标确定目标锚网轮廓,所述目标锚网轮廓为距离所述中心点坐标最近的锚网轮廓;确定所述目标锚网轮廓的四个角点;将所述原锚网图像进行直角坐标系转换,得到转换后的图像;确定所述转换后的图像的四个角点,所述转换后的图像的四个角点位于所述转换后的图像中心;根据所述目标锚网轮廓的四个角点和所述转换后的图像的四个角点计算单应矩阵,所述单应矩阵用于将一个平面内的图像以任意方式转换到另一个平面;根据所述单应矩阵确定所述原锚网图像中所有锚网孔中心点在所述转换后的图像中的坐标;根据三角剖分算法确定所述转换后的图像中每个锚网孔中心点的相邻点;根据预设阈值去除所述相邻点中非水平或者垂直的点,得到第一剩余相邻点;去除所述第一剩余相邻点中在同方向上相邻点距离较远的点,得到第二剩余相邻点;采用数对表示所述第二剩余相邻点之间的位置关系;根据所述位置关系使用递归算法查找某一点所在的行列中所有点。通过本发明解决了在锚网拍摄识别后无法对任意点所在的同行列点匹配难题。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1为本发明实施例1提供的一种锚网孔同行列中心点匹配方法的流程图;
35.图2(a)为锚网图,图2(b)为锚网孔中心和锚网图;
36.图3为灰度化处理后的图像;
37.图4为二值化处理后的图像;
38.图5为寻找锚网边界图;
39.图6为距离中心点最近的锚网孔和四个角点;
40.图7为转换后的图像;
41.图8为源图像锚网轮廓中心点转换后在转换后的图像中的位置;
42.图9为三角剖分算法生成的三角形面;
43.图10为去除非水平或垂直的边后的图像;
44.图11为位置关系表述图;
45.图12为寻找某点同行列点图;
46.图13为恢复点在原图像中的位置图;
47.图14为一种锚网孔同行列中心点匹配系统的结构框图。
具体实施方式
48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.本发明的目的是提供一种锚网孔同行列中心点匹配方法及系统,通过本发明达到了对任意角度拍摄的锚网图像同行列中心点匹配的目的。
50.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
51.实施例1:
52.请参阅图1,本发明提供了一种锚网孔同行列中心点匹配方法,该方法包括以下步骤:
53.s1:确定原锚网图像的中心点坐标;
54.s2:根据所述中心点坐标确定目标锚网轮廓,所述目标锚网轮廓为距离所述中心点坐标最近的锚网轮廓;
55.s3:确定所述目标锚网轮廓的四个角点;
56.s4:将所述原锚网图像进行直角坐标系转换,得到转换后的图像;
57.s5:确定所述转换后的图像的四个角点,所述转换后的图像的四个角点位于所述转换后的图像中心;
58.s6:根据所述目标锚网轮廓的四个角点和所述转换后的图像的四个角点计算单应矩阵,所述单应矩阵用于将一个平面内的图像以任意方式转换到另一个平面;
59.s7:根据所述单应矩阵确定所述原锚网图像中所有锚网孔中心点在所述转换后的
图像中的坐标;
60.s8:根据三角剖分算法确定所述转换后的图像中每个锚网孔中心点的相邻点;
61.s9:根据预设阈值去除所述相邻点中非水平或者垂直的点,得到第一剩余相邻点;
62.s10:去除所述第一剩余相邻点中在同方向上相邻点距离较远的点,得到第二剩余相邻点;
63.s11:采用数对表示所述第二剩余相邻点之间的位置关系;
64.s12:根据所述位置关系使用递归算法查找某一点所在的行列中所有点。
65.在步骤s1之前,还包括:
66.对原锚网图像进行分割处理,得到分割后的锚网图像,如图2(a)和图2(b)所示;
67.对所述分割后的锚网图像利用opencv中的cv::cvtcolor函数中的color_bgr2gray转换方法进行灰度化处理,得到灰度化处理后的锚网图像,如图3所示;
68.设定阈值对所述灰度化处理后的锚网图像进行二值化处理,得到二值锚网图;即锚网为黑色,背景为白色,如图4所示;
69.利用opencv中的cv::findcontours函数寻找所述二值锚网图的边界如图5,得到若干个锚网轮廓,每个轮廓包含mi个点,用ti={p
i,j
|j∈1,...,mi},i∈0,...,n表示,式中ti为第i个轮廓,p
i,j
为第i个轮廓的第j个点;
70.求出原锚网图像的中心点坐标,具体公式如下:
[0071][0072]
其中,u
center
和v
center
分别为原锚网图像中心点的横坐标和纵坐标,width
image
和height
image
分别为原锚网图像的宽和高。
[0073]
在步骤s2中,根据所述中心点坐标确定目标锚网轮廓,具体包括:
[0074]
计算每个锚网轮廓的零阶距离和一阶距,所述一阶距包括水平方向一阶距和垂直方向一阶距;
[0075]
其中,零阶距离的计算公式为:
[0076][0077]
式中,为第i个轮廓的零阶距,v(u
i,j
,v
i,j
)为第i个轮廓第j个点的像素值,mi为每个轮廓包含的点的个数;
[0078]
水平方向一阶矩的计算公式为:
[0079][0080]
式中,u
i,j
表示第i个轮廓第j个点的横坐标,为第i个轮廓的水平方向一阶矩;
[0081]
垂直方向一阶矩的计算公式为:
[0082][0083]
式中,v
i,j
表示第i个轮廓第j个点的纵坐标,为第i个轮廓的垂直方向一阶矩;
[0084]
根据每个锚网轮廓的零阶距离和一阶距确定每个锚网轮廓的重心;所述锚网轮廓
的重心计算公式如下:
[0085][0086]
式中,和分别为第i个锚网轮廓的重心的横纵坐标。
[0087]
根据每个锚网轮廓的重心到原锚网图像的中心点的距离确定目标锚网轮廓。具体的,在求出每个锚网轮廓的重心坐标后,使用平方差公式计算每个锚网轮廓的重心到原锚网图像中心点的距离。利用公式distance
shortest
=min(distancei),i∈0,...,n,求出最短的距离,最短距离对应的锚网轮廓为距离图像中心最近的锚网轮廓,记为t
nearest
。如图6中四个白色点及线条所围成的轮廓为距离图像中心点最近的轮廓。
[0088]
在步骤s3中,确定所述目标锚网轮廓的四个角点,具体包括:
[0089]
使用douglas-peucker算法将距离原锚网图像的中心点最近的锚网轮廓拟合成四边形;
[0090]
根据所述四边形确定所述目标锚网轮廓的四个角点。
[0091]
其中,拟合过程如下;
[0092]
a.取锚网轮廓中欧式距离最远的两点作为端点,记为a,c,并将a,c连接为线段ac;
[0093]
b.锚网轮廓被线段ac分为两部分,两部分的点群分别记为和
[0094]
c.在点群中寻找距离线段ac最远的一点,该点记为b;在点群中寻找距离线段ac最远的一点,该点记为d;
[0095]
d.则点a、b、c、d为四边形拟合锚网轮廓后对应的四个顶点;
[0096]
拟合的多边形如图6中四个白色点及线条所围成的轮廓,多边形的顶点如图6中白色点。
[0097]
单应矩阵用来将一个平面内的图像以任意方式转换到另一个平面,转换后的图像大小、角度、平行度等较原图像均可不同。两平面图像通过单应矩阵变换关系为:
[0098][0099]
其中,u2为转换后的图像中的点的横坐标,v2为转换后的图像中的点的纵坐标,为单应矩阵,u1为原锚网图像中的点的横坐标,v1为原锚网图像中的点的纵坐标。由于转换的是齐次坐标,所以,展开式为:
[0100]
若要解单应矩阵则需要八个独立的
方程,由于每个点提供两个方程,即则需要四组点。在步骤s3中,得到了距离所述中心点坐标最近的锚网轮廓拟合为四边形的四个顶点a、b、c、d,为了将锚网边转换成竖直水平,则转换后的图像中的点应水平垂直矩形的顶点。为了确保转换后的图形不会超出转换后的图像的范围,转换后的图像中的矩形应该位于图像的中心(原锚网图像中的锚网轮廓为距离原锚网图像中心点最近的锚网轮廓),取线段ab、bc、cd、da中最短的一段线段去确定目标图像中的四个顶点,即最短的线段为s
t
,则取转换后的图像中的四个角点分别为左上,右上,右下,左下,分别用a'、b'、c'、d'代替,a'、b'、c'、d'的坐标分别为个角点分别为左上,右上,右下,左下,分别用a'、b'、c'、d'代替,a'、b'、c'、d'的坐标分别为其中(u
center
,v
center
)为原锚网图像中心点坐标。则通过下式可以解算出单应矩阵内的参数h11、h12、h13、h21、h22、h23、h31和h32。
[0101][0102]
式中,为a、b、c、d点在原锚网图像中的坐标,为a'、b'、c'、d'点在转换后的图像中的坐
标。
[0103]
将原锚网图像中的所有点带入公式中,即可求出所有点在转换后的图像中的坐标位置。转换后的图像如图7所示。也就是说,求出单应矩阵后即可计算锚网孔中心点转换后的坐标,如图2和图8。
[0104]
在步骤s8中,根据三角剖分算法确定所述转换后的图像中每个锚网孔中心点的相邻点,具体包括:
[0105]
定义转换后的图像中所有点的集合a={pr|r∈1,...,s},式中,s为转换后的图像所有点的个数,生成剖分三角形的步骤如下:
[0106]
(1)在集合a={pr|r∈1,...,s}中任取一点pe;
[0107]
(2)寻找pe点最近的点p
t
,生成线段pep
t
,将pep
t
命名为基线;
[0108]
(3)在除pe和p
t
点外的所有点中寻找一点pf,该点满足三角形pep
t
pf的外接圆内不包含a={pr|r∈1,...,s}中的任意一点;
[0109]
(4)以生成的三角形pep
t
pf的另外两边pepf、p
t
pf分别为基线,重复步骤c,直到不满足步骤c中的条件;
[0110]
(5)最终生成所有满足步骤c条件的三角形称为剖分三角形。生成的三角形面如图9所示。
[0111]
记所有剖分三角形的边为剖分边,与第k点pk组成剖分边的点的集合为n={p
p
|p∈1,...,q};即第点的相邻边为n={p
p
|p∈1,...,q}。
[0112]
通过三角剖分算法可以知道第k点pk相邻点的集合为nk={p
kp
|p∈1,...,q},式中,q为第k个点pk相邻点的个数。通过公式计算点pk和相邻点p
kp
连线pkp
kp
的水平的夹角,式中p
kpu
为点p
kp
的横坐标,p
kpv
为点p
kp
的纵坐标,p
ku
为点pk的横坐标,p
kv
为点pk的纵坐标。利用公式err=|45
°‑

p
%90||,式中,%为取余符号,err为θ
p
角靠近{-90
°
,0
°
,90
°
}的指标,其范围为(0
°
,45
°
),值越大则越靠近{-90
°
,0
°
,90
°
},故取中间值22.5
°
作为判断线pkp
kp
是否水平或垂直的标准,如果err>22.5
°
,则线pkp
kp
为水平或垂直,保留点p
kp
;反之则去除点p
kp
,处理后的图像如图10所示。
[0113]
根据上述步骤即可去除所述相邻点中非水平或者垂直的点,得到第一剩余相邻点。
[0114]
所述方法还包括:通过点pk和点p
kp
的坐标关系标定第一剩余相邻点的位置;
[0115]
具体的,点pk相邻点的上下左右关系通过如下方式判断:
[0116]
点pk的坐标为(p
ku
,p
kv
),点p
kp
的坐标为(p
kpu
,p
kpv
)
[0117]
判断方式类型若p
kpu
<p
ku
且|p
kpu-p
ku
|>|p
kpv-p
kv
|左若p
kpu
>p
ku
且|p
kpu-p
ku
|>|p
kpv-p
kv
|右若p
kpv
<p
kv
且|p
kpu-p
ku
|<|p
kpv-p
kv
|上
若p
kpv
>p
kv
且|p
kpu-p
ku
|<|p
kpv-p
kv
|下
[0118]
在步骤s10中,去除所述第一剩余相邻点中在同方向上相邻点距离较远的点,得到第二剩余相邻点,具体包括:
[0119]
若同方向存在两个以上的点,则保留最近的一个点作为某点某方向上的点。
[0120]
在步骤s11中,采用数对表示所述第二剩余相邻点之间的位置关系,具体包括:
[0121]
用数对表示节点与节点间的位置关系(左右为水平方向用h表示,上下为垂直方向用v表示),例如(0,1,v)表示节点1在节点0的垂直方向下方;(1,0,v)表示节点1在节点0的垂直方向上方,用箭头的形式表示出来,如图11所示。
[0122]
在步骤s12中,根据所述位置关系使用递归算法查找某一点所在的行列中所有点,具体包括:
[0123]
指定某点和寻找方向水平h,寻找该点左边的点一直到左边没有点,同理寻找该点右边的点一直到右边没有点,如图12所示,例如编号为1的点的同行点为实线圈所圈出的点;
[0124]
指定某点和寻找方向垂直v,寻找该点上边的点一直到上边没有点,同理寻找该点下边的点一直到下边没有点,如图12所示,例如编号为1的点的同列点为虚线框所圈出的点。
[0125]
所述方法还包括:位置恢复;通过单应矩阵转换后点的排列方式与转换前的图像点的排列方式相同;将点的位置恢复到原锚网图像中,如图13所示。
[0126]
本发明提出了一种锚网孔同行列中心点匹配方法,通过单应矩阵图像转换、三角剖分算法寻找邻域点、错点排除、同方向点生成、双向图生成达到了对任意角度拍摄的锚网图像同行列中心点匹配的目的。
[0127]
实施例2:
[0128]
请参阅图14,本发明提供了一种锚网孔同行列中心点匹配系统,该系统包括:
[0129]
中心点坐标确定模块1,用于确定原锚网图像的中心点坐标;
[0130]
目标锚网轮廓确定模块2,用于根据所述中心点坐标确定目标锚网轮廓,所述目标锚网轮廓为距离所述中心点坐标最近的锚网轮廓;
[0131]
第一角点确定模块3,用于确定所述目标锚网轮廓的四个角点;
[0132]
转换模块4,用于将所述原锚网图像进行直角坐标系转换,得到转换后的图像;
[0133]
第二角点确定模块5,用于确定所述转换后的图像的四个角点,所述转换后的图像的四个角点位于所述转换后的图像中心;
[0134]
单应矩阵计算模块6,用于根据所述目标锚网轮廓的四个角点和所述转换后的图像的四个角点计算单应矩阵,所述单应矩阵用于将一个平面内的图像以任意方式转换到另一个平面;
[0135]
转换坐标确定模块7,用于根据所述单应矩阵确定所述原锚网图像中所有锚网孔中心点在所述转换后的图像中的坐标;
[0136]
相邻点确定模块8,用于根据三角剖分算法确定所述转换后的图像中每个锚网孔中心点的相邻点;
[0137]
第一剩余相邻点获取模块9,用于根据预设阈值去除所述相邻点中非水平或者垂直的点,得到第一剩余相邻点;
[0138]
第二剩余相邻点获取模块10,用于去除所述第一剩余相邻点中在同方向上相邻点距离较远的点,得到第二剩余相邻点;
[0139]
表示模块11,用于采用数对表示所述第二剩余相邻点之间的位置关系;
[0140]
查找模块12,用于根据所述位置关系使用递归算法查找某一点所在的行列中所有点。
[0141]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0142]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献