code: def extract_from_image(self, image):
          
          ia.do_assert(image.ndim in [2, 3])
          if len(self.exterior) <= 2:
              raise Exception("Polygon must be made up of at least 3 points to extract its area from an image.")
  
          bb = self.to_bounding_box()
          bb_area = bb.extract_from_image(image)
          if self.is_out_of_image(image, fully=True, partly=False):
              return bb_area
  
          xx = self.xx_int
          yy = self.yy_int
          xx_mask = xx - np.min(xx)
          yy_mask = yy - np.min(yy)
          height_mask = np.max(yy_mask)
          width_mask = np.max(xx_mask)
  
          rr_face, cc_face = skimage.draw.polygon(yy_mask, xx_mask, shape=(height_mask, width_mask))
  
          mask = np.zeros((height_mask, width_mask), dtype=np.bool)
          mask[rr_face, cc_face] = True
  
          if image.ndim == 3:
              mask = np.tile(mask[:, :, np.newaxis], (1, 1, image.shape[2]))
  
          return bb_area * mask
docs: Extract the image pixels within the polygon.
  
          This function will zero-pad the image if the polygon is partially/fully outside of
          the image.
  
          Parameters
          ----------
          image : (H,W) ndarray or (H,W,C) ndarray
              The image from which to extract the pixels within the polygon.
  
          Returns
          -------
          result : (H',W') ndarray or (H',W',C) ndarray
              Pixels within the polygon. Zero-padded if the polygon is partially/fully
              outside of the image.