Spaces:
Runtime error
Runtime error
| from colorbynumber.config import default_config | |
| from colorbynumber.main import ColorByNumber | |
| from colorbynumber.numbered_islands import add_numbers_to_image | |
| def _hex_to_rgb(hex_color): | |
| hex_color = hex_color.lstrip("#") | |
| return tuple(int(hex_color[i:i+2], 16) for i in (0, 2, 4)) | |
| def get_color_by_number(image_path, number_of_colors, | |
| is_automatic_colors, num_colors, | |
| denoise_flag, denoise_order, denoise_type, | |
| blur_size, denoise_h, | |
| open_kernel_size, area_perc_threshold, | |
| check_shape_validity, arc_length_area_ratio_threshold, | |
| font_size, font_color, font_thickness, | |
| *color_list): | |
| # Convert each color to r,g,b tuple | |
| color_list = color_list[:num_colors] | |
| color_list = [_hex_to_rgb(h) for h in color_list] | |
| # Update config | |
| config = default_config.copy() | |
| config["denoise"] = denoise_flag | |
| config["denoise_order"] = denoise_order | |
| config["denoise_type"] = denoise_type | |
| config["blur_size"] = blur_size | |
| config["denoise_h"] = denoise_h | |
| config["open_kernel_size"] = open_kernel_size | |
| config["area_perc_threshold"] = area_perc_threshold | |
| config["check_shape_validity"] = check_shape_validity | |
| config["arc_length_area_ratio_threshold"] = arc_length_area_ratio_threshold | |
| config["font_size"] = font_size | |
| config["font_color"] = _hex_to_rgb(font_color) | |
| config["font_thickness"] = font_thickness | |
| if is_automatic_colors: | |
| colorbynumber_obj = ColorByNumber( | |
| image_path = image_path, | |
| num_colors = number_of_colors, | |
| config = config, | |
| ) | |
| else: | |
| colorbynumber_obj = ColorByNumber( | |
| image_path = image_path, | |
| color_list = color_list, | |
| config = config, | |
| ) | |
| numbered_islands = colorbynumber_obj.create_color_by_number() | |
| data = { | |
| "centroid_coords_list": colorbynumber_obj.centroid_coords_list, | |
| "color_id_list": [color_id for color_id, _ in colorbynumber_obj.island_borders_list] | |
| } | |
| return numbered_islands, \ | |
| colorbynumber_obj.generate_color_legend(), \ | |
| colorbynumber_obj.simplified_image, \ | |
| colorbynumber_obj.islands_image, \ | |
| data | |
| def change_font_on_image(image, data, font_size, font_color, font_thickness): | |
| if image is None: | |
| return None | |
| centroid_coords_list = data["centroid_coords_list"] | |
| color_id_list = data["color_id_list"] | |
| font_color = _hex_to_rgb(font_color) | |
| return add_numbers_to_image( | |
| image = image, | |
| centroid_coords_list = centroid_coords_list, | |
| color_id_list = color_id_list, | |
| font_size = font_size, | |
| font_color = font_color, | |
| font_thickness = font_thickness | |
| ) | |