我正在使用sci-kit图像来获取分割图像的“regionprops”。然后,我希望用相应的统计量(例如偏心率)替换每个段标签。
from skimage import segmentation
from skimage.measure import regionprops
#a segmented image
labels = segmentation.slic(img1, compactness=10, n_segments=200)
propimage = labels
#props loop
for region in regionprops(labels1, properties ='eccentricity') :
eccentricity = region.eccentricity
propimage[propimage==region] = eccentricity
这会运行,但是propimage值不会从原始标签更改
我也尝试过:
for i in range(0,max(labels)):
prop = regions[i].eccentricity #the way to cal a single prop
propimage[i]= prop
这会导致此错误 ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()
我是matlab的最近移民,我实现了这一点,但使用的数据结构完全不同。
任何人都能帮助我吗?
谢谢
答案 0 :(得分:0)
使用scipy中的ndimage:sum()函数可以使用你的标签数组来运行。
from scipy import ndimage as nd
sizes = nd.sum(label_file[0]>0, labels=label_file[0], index=np.arange(0,label_file[1])
然后,您可以使用numpy.histogram等评估分布。