[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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容