def fuse_labels_in_image(self, labels, verbose = True):
""" Modify the image so the given labels are fused (to the min value)."""
assert isinstance(labels, list) and len(labels) >= 2
assert self.background() not in labels
min_lab = min(labels)
labels.remove(min_lab)
N=len(labels); percent = 0
if verbose: print "Fusing the following {} labels: {} to value '{}'.".format(N, labels, min_lab)
for n, label in enumerate(labels):
if verbose and n*100/float(N) >= percent: print "{}%...".format(percent),; percent += 5
if verbose and n+1==N: print "100%"
try:
bbox = self.boundingbox(label)
xyz = np.where( (self.image[bbox]) == label )
self.image[tuple((xyz[0]+bbox[0].start, xyz[1]+bbox[1].start, xyz[2]+bbox[2].start))]=min_lab
except:
print "No boundingbox found for cell id #{}, skipping...".format(label)
continue
print "Done!"
return None
spatial_image_analysis.py 文件源码
python
阅读 34
收藏 0
点赞 0
评论 0
评论列表
文章目录