Spaces:
Runtime error
Runtime error
| from colormath.color_objects import sRGBColor, LabColor | |
| from colormath.color_conversions import convert_color | |
| from colormath.color_diff import delta_e_cie2000 | |
| def rgb_to_lab(rgb): | |
| """ | |
| Convert an RGB color to LAB color. | |
| :param rgb: A tuple (R, G, B) with values ranging from 0 to 255. | |
| :return: A LabColor object. | |
| """ | |
| srgb_color = sRGBColor(rgb[0], rgb[1], rgb[2], is_upscaled=True) | |
| lab_color = convert_color(srgb_color, LabColor) | |
| return lab_color | |
| # Helper function to convert RGB to hex | |
| def rgb_to_hex(rgb_color): | |
| r, g, b = rgb_color | |
| return "#%02X%02X%02X" % (int(r), int(g), int(b)) | |
| # Function to convert hex color to BGR | |
| def hex_to_bgr(hex_color): | |
| hex_value = hex_color.lstrip("#") | |
| r, g, b = [int(hex_value[i:i + 2], 16) for i in (0, 2, 4)] | |
| return [b, g, r] | |
| def hex_to_rgb(hex_color): | |
| hex_value = hex_color.lstrip("#") | |
| r, g, b = [int(hex_value[i:i + 2], 16) for i in (0, 2, 4)] | |
| return [r, g, b] | |
| def calculate_color_distance_lab(color1, color2): | |
| """ | |
| Calculate the distance between two colors in LAB space using the CIE2000 formula. | |
| :param color1: A tuple (R, G, B) with values ranging from 0 to 255. | |
| :param color2: A tuple (R, G, B) with values ranging from 0 to 255. | |
| :return: The distance between the two colors. | |
| """ | |
| lab1 = rgb_to_lab(color1) | |
| lab2 = rgb_to_lab(color2) | |
| distance = delta_e_cie2000(lab1, lab2) | |
| return distance | |
| # # Example usage | |
| # color1 = (255, 215, 0) # Golden Blonde RGB | |
| # color2 = (255, 248, 220) # Platinum Blonde RGB | |
| # distance = calculate_color_distance_lab(color1, color2) | |
| # print(f"Color distance in LAB space: {distance}") | |