Проблема с определением цвета для более ярких цветовPython

Программы на Python
Anonymous
Проблема с определением цвета для более ярких цветов

Сообщение Anonymous »

Я создал алгоритм определения цвета. По сути, он извлекает основные цвета предмета одежды. Проблема, с которой я столкнулся, заключается в том, что модель не может определить цвет, отличный от синего:
Изображение
Изображение
[img]https:/ /i.sstatic.net/v8MXQ0po.png[/img]

Алгоритм, используемый для кластеризации цветов, — это метод Питера Хансена.
Алгоритм I для получения названий цветов я использую следующее:

Код: Выделить всё

def closest_color(requested_color):
TOP_COLORS = {
'black': (0, 0, 0),
'white': (255, 255, 255),
'red': (0, 0, 255),
'blue': (255, 0, 0),
'green': (0, 128, 0),
'yellow': (0, 255, 255),
'orange': (0, 165, 255),
'pink': (203, 192, 255),
'purple': (128, 0, 128),
'brown': (42, 42, 165),
'gray': (128, 128, 128),
'navy': (128, 0, 0),
'lime': (0, 255, 0),
'fuchsia': (255, 0, 255),
'silver': (192, 192, 192),
'gold': (0, 215, 255),
'khaki': (140, 230, 240),
'turquoise': (208, 224, 64),
'violet': (238, 130, 238),
'indigo': (130, 0, 75),
'coral': (80, 127, 255),
'chocolate': (30, 105, 210),
'darkblue': (139, 0, 0),
'darkcyan': (139, 139, 0),
'darkgreen': (0, 100, 0),
'darkred': (0, 0, 139),
'midnightblue': (112, 25, 25),
'lightblue': (230, 216, 173),
'lightgreen': (144, 238, 144),
'lightgray': (211, 211, 211),
'lightpink': (193, 182, 255),
'lightyellow': (224, 255, 255),
}

min_distance = float('inf')
closest_color_name = None
for color_name, rgb in TOP_COLORS.items():
distance = np.sqrt((rgb[0] - requested_color[0]) ** 2 +
(rgb[1] - requested_color[1]) ** 2 +
(rgb[2] - requested_color[2]) ** 2)
if distance < min_distance:
min_distance = distance
closest_color_name = color_name

return closest_color_name
Есть ли у кого-нибудь рекомендации по этой модели или как получить более точные отклики для более ярких цветов?


Подробнее здесь: https://stackoverflow.com/questions/786 ... ter-colors

Вернуться в «Python»