寻找区域的边界
coords是一个graph中分析出来的某个区域块的坐标
输出值是该区域的边界的坐标
def find_boundary(coords, graph):
'''
找到每个指定区域的boundary的坐标值
Input:
1. coords:
numpy.ndarray, 待分析区域的坐标合集
2. graph:
numpy.ndarray, 关注的研究区域上mcs的Tb array
Output:
1. boundary_coords:
numpy.ndarray,待分析区域的边界坐标合集
'''
_graph = np.zeros(np.shape(graph), dtype = np.uint8)
_graph[coords[:,0],coords[:,1]] = graph[coords[:,0],coords[:,1]].copy()
distance = ndimage.distance_transform_edt(_graph) #核心语句
distance[distance != 1] = 0 #非边缘部分设置为黑色
distance[distance == 1] = 255 #边缘部分设置为白色
boundary_coords = np.array(np.where(distance==255)).T
return boundary_coords
网友评论