我正在试着找出哪些区域是相连的。我搜索了scikit文档,但我无法找到这样做的方法。
下面是我的代码
def calculate_mask_info(labeled_2DImage):
features = pd.DataFrame()
id = 0
newmask = label(labeled_2DImage, connectivity=2) # seperate regions with same mean_intensity that are not connected
for region in regionprops(newmask, intensity_image=labeled_2DImage):
if region.mean_intensity < 1:
# Skip background (intensity 0)
continue
# connected regionds Id's -> how?
features = features.append([get_region_info(region, id)]) #function that puts region info into dictionary
id += 1
return features
def get_region_info(region, id):
feat_dict = {'id': id,
'labelId': region.mean_intensity,
'y': region.centroid[0],
'x': region.centroid[1],
}
return feat_dict

发布于 2020-09-23 18:21:45
你想要的是一个region adjacency graph, or RAG。您可以使用以下命令创建一个:
from skimage import future
rag = future.graph.RAG(newmask) # or labeled2D_image, not sure然后,您可以使用以下命令获取相邻区域:
list(rag.neighbors(region.label))请注意,默认情况下,邻居包含背景标签(0),但您可以使用以下命令删除它:
rag.remove_node(0)RAG是一个networkx Graph,因此您可以查看文档以了解更多信息。
最后,请注意,在即将发布的0.18版本的scikit image中,RAG将从skimage.future.graph迁移到skimage.segmentation.graph,因此您应该注意这一变化!
https://stackoverflow.com/questions/64011133
复制相似问题