code: def contour_mask(self, contour):
          
          # fill in new data
          new_data = np.zeros(self.data.shape)
          num_boundary = contour.boundary_pixels.shape[0]
          boundary_px_ij_swapped = np.zeros([num_boundary, 1, 2])
          boundary_px_ij_swapped[:, 0, 0] = contour.boundary_pixels[:, 1]
          boundary_px_ij_swapped[:, 0, 1] = contour.boundary_pixels[:, 0]
          cv2.fillPoly(
              new_data, pts=[
                  boundary_px_ij_swapped.astype(
                      np.int32)], color=(
                  BINARY_IM_MAX_VAL, BINARY_IM_MAX_VAL, BINARY_IM_MAX_VAL))
          orig_zeros = np.where(self.data == 0)
          new_data[orig_zeros[0], orig_zeros[1]] = 0
          return BinaryImage(new_data.astype(np.uint8), frame=self._frame)
docs: Generates a binary image with only the given contour filled in.