Example #1
0
 def setImageMasked(self, image, mask=None, lo=None, hi=None):
     """Set the image to be iterated over.  This should be an RGB image,
         ndim==3, dtype=='B'.  This picks a subset of the segmentation to iterate
         over, using a mask and lo and hi values.
     """
     # print("$$ setImageMasked: image=%s mask=%s lo=%s hi=%s" % (
     #     desc(image), hexs(mask), hexs(lo), hexs(hi)))
     assert image.dtype == dtype('B') or image.dtype == dtype(
         'i'), "image must be type B or i"
     if image.ndim == 3:
         image = rgb2int(image)
     imageDescribe("image", image)
     assert image.ndim == 2, "wrong number of dimensions"
     self.image = image
     labels = image
     if lo is not None:
         labels[labels < lo] = 0
     if hi is not None:
         labels[labels > hi] = 0
     if mask is not None:
         labels = bitwise_and(labels, mask)
     imageDescribe("labels", labels)
     labels, correspondence = morph.renumber_labels_ordered(
         labels, correspondence=1)
     self.labels = labels
     self.correspondence = correspondence
     self.objects = [None] + morph.find_objects(labels)
     # print("$$ setImageMasked: objects=%d" % len(self.objects))
     sizes = [o for o in self.objects]
     sizes.sort(key=lambda u: -sliceSize(u))
     for i, o in enumerate(sizes[:20]):
         print("%5d: %s %s %d" % (i, o, sliceDims(o), sliceSize(o)))
Example #2
0
 def setImageMasked(self,image,mask=None,lo=None,hi=None):
     """Set the image to be iterated over.  This should be an RGB image,
     ndim==3, dtype=='B'.  This picks a subset of the segmentation to iterate
     over, using a mask and lo and hi values.."""
     assert image.dtype==dtype('B') or image.dtype==dtype('i'),"image must be type B or i"
     if image.ndim==3: image = rgb2int(image)
     assert image.ndim==2,"wrong number of dimensions"
     self.image = image
     labels = image
     if lo is not None: labels[labels<lo] = 0
     if hi is not None: labels[labels>hi] = 0
     if mask is not None: labels = bitwise_and(labels,mask)
     labels,correspondence = morph.renumber_labels_ordered(labels,correspondence=1)
     self.labels = labels
     self.correspondence = correspondence
     self.objects = [None]+morph.find_objects(labels)