Я пытаюсь использовать цветную камеру для отслеживания нескольких объектов в пространстве. Каждый объект будет иметь свой цвет, и чтобы иметь возможность хорошо различать каждый объект, я стараюсь, чтобы каждый цвет, назначенный объекту, отличался от любого цвета на любом другом объекте, насколько это возможно.
В пространстве RGB у нас есть три плоскости, все со значениями от 0 до 255. В этом кубе я хотел бы распределить n цветов так, чтобы было столько же Расстояние между собой и другими, насколько это возможно. Дополнительным ограничением является то, что ( 0 , 0 , 0 ) и ( 255 , 255 , 255 ) (или как можно ближе к ним) должны быть включены в nцветов, потому что я хочу убедиться, что ни один из моих объектов не принимает ни один цвет, потому что фон, вероятно, будет одним из этих цветов.
Вероятно, (включая черный и время) будет не более 14.
Заранее спасибо за любые указатели о том, как получить эти цвета.
Ответы:
Все цвета будут на поверхности куба RGB, если я не ошибаюсь, по той же причине, по которой весь электрический заряд появляется на поверхности электрических проводников. Это предполагает следующий метод определения цветов:
Как только частицы сходятся, вы получаете расположение цветов, интерпретируя точки как цвета. Первоначально частицы могут быть расположены случайным образом на поверхности куба с небольшим интервалом (помогает сходимости и проблемам стабильности). Помещение маленьких групп на лицах куба должно работать.
Чтобы не застрять в локальном (а не глобальном) минимуме, вы можете «пульсировать» некоторое небольшое случайное электрическое поле после схождения и посмотреть, возвращается ли система к той же конфигурации или к другой. Несколько маловероятно, что случайно расположенные частицы сделают это в этом сценарии, но возможно.
РЕДАКТИРОВАТЬ:
Как отмечено в комментариях, предположение, что оптимальные решения должны лежать только на поверхности, вероятно, не выполняется для всех геометрий в дискретном случае.
К счастью, это не имеет никакого отношения к остальной технике, описанной выше. Частицы могут быть изначально размещены где угодно; просто оставьте некоторое пространство между парами частиц для стабильности и покрытия, а затем итерируйте систему до сходимости, затем сделайте несколько импульсов (возможно, с увеличением интенсивности), чтобы увидеть, можно ли заставить систему сходиться к какой-то другой (возможно, лучшей) конфигурации ,
Также обратите внимание, что я считаю, что этот метод максимизирует что-то вроде «(гармоника?) Среднего расстояния между парами частиц». Если вы хотите максимизировать минимальное расстояние между парами частиц или какое-либо другое среднее (геометрическое?) Между парами частиц, это может не дать вам наилучшего решения.
В любом случае, я чувствую, что этот метод даст вам простой способ придумать хорошие приблизительно оптимальные наборы цветов ... получение реальных "оптимальных" решений, вероятно, не требуется для вашего варианта использования. Естественно, если требуется точное и доказуемо оптимальное решение, численное моделирование, вероятно, не лучший путь.
источник