def get_segments_inside2(self, segment, delta=None, ratio=None): mask = segment.get_mask() if delta is not None: mask = nputils.shift2d(mask, delta) result = FeaturesGroup() # print "Look for segments inside", segment for id, count in nputils.count((self.labels * mask).flatten()): segment_inside = self.get_segment_from_id(id) if segment_inside is not None: # print "->", segment_inside, count / float(segment_inside.get_area()), count / float(segment.get_area()) if ratio is not None: ratio_inside = max(count / float(segment_inside.get_area()), count / float(segment.get_area())) if ratio_inside < ratio: continue result.add_feature(segment_inside) return result
def get_segments_inside2(self, segment, delta=None, ratio=None): mask = segment.get_mask() if delta is not None: mask = nputils.shift2d(mask, delta) result = FeaturesGroup() # print "Look for segments inside", segment for id, count in nputils.count((self.labels * mask).flatten()): segment_inside = self.get_segment_from_id(id) if segment_inside is not None: # print "->", segment_inside, count / float(segment_inside.get_area()), count / float(segment.get_area()) if ratio is not None: ratio_inside = max( count / float(segment_inside.get_area()), count / float(segment.get_area())) if ratio_inside < ratio: continue result.add_feature(segment_inside) return result