def main(in_img_path): rgb_img = cv2.imread(in_img_path) overlay_img = cv2.imread(OVERLAY_IMG_PATH, -1) cascade = cv2.CascadeClassifier(CASCADE_PATH) faces = cascade.detectMultiScale(cv2.cvtColor(rgb_img, cv2.COLOR_BGR2GRAY), scaleFactor=1.1, minNeighbors=1, minSize=(1, 1)) if len(faces) <= 0: check_img(rgb_img, 'total', True, OUT_IMG_PATH) return for (x, y, w, h) in faces: face_img = rgb_img[y:y + h, x:x + w] if not is_skin(face_img): continue # color = hsv_to_bgr(get_hair_color_hsv(face_img)) name, hsv = detect_aikatsu_charactors['anime_based']['bgr_diff']( get_hair_color_hsv(face_img)) color = hsv_to_bgr(hsv) cv2.rectangle(rgb_img, (x, y), (x + w, y + h), color, thickness=7) check_img(rgb_img, 'total', True, OUT_IMG_PATH)
def main(in_img_path): rgb_img = cv2.imread(in_img_path) overlay_img = cv2.imread(OVERLAY_IMG_PATH, -1) cascade = cv2.CascadeClassifier(CASCADE_PATH) faces = cascade.detectMultiScale(cv2.cvtColor(rgb_img, cv2.COLOR_BGR2GRAY), scaleFactor=1.1, minNeighbors=1, minSize=(1, 1)) if len(faces) <= 0: return for (x, y, w, h) in faces: face_img = rgb_img[y:y + h, x:x + w] check_img(face_img, 'face_img', CHECK_IMG_FLAG, OUT_IMG_PATH) if not is_skin(face_img): continue alpha_channel = get_alphachannel(face_img) check_img(alpha_channel, 'alpha_channel', CHECK_IMG_FLAG, OUT_IMG_PATH) alpha_channel = fill_void(alpha_channel) resized_overlay_img = cv2.resize(overlay_img, tuple((w, h))) mask_img = cv2.bitwise_and(resized_overlay_img, resized_overlay_img, mask=alpha_channel) check_img(mask_img, 'mask_img', CHECK_IMG_FLAG, OUT_IMG_PATH) for i, j in [(i, j) for i in range(h) for j in range(w)]: if any(mask_img[i, j]): rgb_img[y + i, x + j] = mask_img[i, j] check_img(rgb_img, 'total', CHECK_IMG_FLAG, OUT_IMG_PATH)
def __init__(self, group, x, y, level, damage=1, health=10, size=(1, 2), speed=(2, 2), image=None): super().__init__(group) self.x, self.y = x, y # In cell self.size_x, self.size_y = size # In cell cell = level.cell_size self.rect = [x * cell, y * cell, size[0] * cell, size[1] * cell] self.location = level self.surface = level.surface self.image = check_img( "hello", (level.cell_size * size[0], level.cell_size * size[1])) self.speed = speed # Speed in move (module) self.damage = damage self.hp = health
def __init__(self, surface, x, y, level, size=(1, 2), image=None): self.surface = surface self.x, self.y = x, y self.size_x, self.size_y = size self.location = level self.img = check_img(image, (level.cell_size, level.cell_size * 2))
def __init__(self, surface, width, height, s_x=0, s_y=0, text="Menu", image=None): self.surface = surface self.width = width self.height = height self.buttons = [ Button_menu(surface, 490, 200, 300, 100, "Play", image="resource/menu/background.jpg"), Button_menu(surface, 490, 350, 300, 100, "Settings"), Button_menu(surface, 490, 500, 300, 100, "Exit") ] self.x, self.y = s_x, s_y self.text = text self.img = check_img(image, (width - s_x, height - s_y))
def __init__(self, surface, start_and_size, cell_size, image=None): self.surface = surface self.rect = start_and_size # (x, y, size_x, size_y) self.cell_size = cell_size x, y, size_x, size_y = start_and_size self.img = check_img(image, (size_x, size_y)) self.objects = {"wall": []}
def main(in_img_path): rgb_img = cv2.imread(in_img_path) overlay_img = cv2.imread(OVERLAY_IMG_PATH, -1) cascade = cv2.CascadeClassifier(CASCADE_PATH) faces = cascade.detectMultiScale(cv2.cvtColor(rgb_img, cv2.COLOR_BGR2GRAY), scaleFactor=1.1, minNeighbors=1, minSize=(1, 1)) if len(faces) <= 0: check_img(rgb_img, 'total', True, OUT_IMG_PATH) return for (x, y, w, h) in faces: face_img = rgb_img[y:y + h, x:x + w] if not is_skin(face_img): continue # color = hsv_to_bgr(get_hair_color_hsv(face_img)) name, hsv = detect_aikatsu_charactors['anime_based']['bgr_diff'](get_hair_color_hsv(face_img)) color = hsv_to_bgr(hsv) cv2.rectangle(rgb_img, (x, y), (x + w, y + h), color, thickness=7) check_img(rgb_img, 'total', True, OUT_IMG_PATH)
def set_size(self, size): self.size_x, self.size_y = size self.img = check_img(self.img, size)
def set_image(self, img): self.img = check_img(img, (self.size_x, self.size_y))