【发布时间】:2019-12-27 15:10:14
【问题描述】:
我有一个包含 0 和 1 的栅格作为一个 numpy 数组,所有带 1 的像素都连接在一起形成一条线。这条线在所有地方都是 1 像素粗。使用寻路算法,我有一个所有点(列、行)的坐标列表,包括起点和终点。 我的线的形状是方形 U/矩形,缺少顶部。
我想找到线的方向变化更长的点。例如从下到右,或从右到上。
我看过Finding the point of a slope change as a free parameter- Python;但是,由于我的点都是水平、垂直或对角连接的,所以这是行不通的。我的 u 形也可以在阵列中对角线,因此我正在寻找连接类型变化超过 2 个像素的点。下面是我的数据示例,我想找到 (5,3)/(6,4) 和 (6,7)/(5,8)
a = np.array([[0,0,1,0,0,0,0,0,1],
[0,0,1,0,0,0,0,0,1],
[0,0,0,1,0,0,0,0,1],
[0,0,0,1,0,0,0,1,0],
[0,0,0,1,0,0,0,0,1],
[0,0,0,1,0,0,0,0,1],
[0,0,0,0,1,1,1,1,0],
[0,0,0,0,0,0,0,0,0]])
list_of_points = [(0,2),(1,2),(2,3),(3,3),(4,3),(5,3),(6,4),(6,5),(6,6),(6,7),(5,8),(4,8),(3,7),(2,8),(1,8),(0,8)]
【问题讨论】:
-
路径平缓弯曲怎么办?
-
@MattTimmermans 这是一个很好的问题 - 保留它,我只想要发生突然变化的那一点