[Python]寻找某个区域的边界

寻找区域的边界

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

你可能感兴趣的:([Python]寻找某个区域的边界)