def _apply_two_mask(self, image: np.ndarray, color: Color) -> np.ndarray: hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) hsv_bounds = color.get_hsv_bounds() first_range = hsv_bounds[0][0] second_range = hsv_bounds[0][1] first_mask = cv2.inRange(hsv_image, np.array(first_range[0]), np.array(first_range[1])) second_mask = cv2.inRange(hsv_image, np.array(second_range[0]), np.array(second_range[1])) mask = first_mask + second_mask hsv_image[np.where(mask == 0)] = 0 prepared_image = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR) return cv2.cvtColor(prepared_image, cv2.COLOR_BGR2GRAY)
def _new_prepared_image(self, image: np.ndarray, puck_color: Color) -> np.ndarray: hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) hsv_bounds = puck_color.get_hsv_bounds() return cv2.inRange(hsv_image, np.array(hsv_bounds[0][0]), np.array(hsv_bounds[0][1]))