Mask.py 813 B

123456789101112131415161718192021222324252627282930
  1. import PF2.VectorMask
  2. import cv2
  3. import numpy
  4. class Mask:
  5. def __init__(self, image, width, height):
  6. self.image = image
  7. self.mask = PF2.VectorMask.VectorMask()
  8. self.mask.set_dimentions(width, height)
  9. def get_mask_preview(self, image):
  10. mask = self.mask.get_mask_map()
  11. if(type(mask) == numpy.ndarray):
  12. w, h = image.shape[:2]
  13. print(w, h)
  14. # Bits per pixel
  15. bpp = float(str(image.dtype).replace("uint", "").replace("float", ""))
  16. # Pixel value range
  17. np = float(2 ** bpp - 1)
  18. mask = cv2.resize(mask, (h, w), interpolation=cv2.INTER_AREA)
  19. inverted_map = (mask * -1) + 1
  20. image[0:, 0:, 2] = (np * mask) + (image[0:, 0:, 2] * inverted_map)
  21. return image