如何解决Scikit Skimage RegionPros获取连接的区域Python
我正在尝试找出连接的区域。我搜索了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
解决方法
您想要的是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,因此您可以查看该文档以获取更多信息。
最后,请注意,在即将发布的scikit-image的0.18版本中,RAG将从skimage.future.graph
移至skimage.segmentation.graph
,所以您应该注意这一变化!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。