Esempio n. 1
0
 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
Esempio n. 2
0
 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