Estoy tratando de usar una cámara a color para rastrear múltiples objetos en el espacio. Cada objeto tendrá un color diferente y para poder distinguir bien entre cada objeto, estoy tratando de asegurarme de que cada color asignado a un objeto sea tan diferente de cualquier color en cualquier otro objeto como sea posible.
En el espacio RGB, tenemos tres planos, todos con valores entre 0 y 255. En este cubo , me gustaría distribuir los colores para que haya tanta distancia entre ellos y otros como sea posible Una restricción adicional es que y (o tan cerca de ellos como sea posible) deben incluirse en los colores, porque quiero asegurarme de que ninguno de mis objetos toman cualquier color porque el fondo probablemente será uno de estos colores.n ( 0 , 0 , 0 ) ( 255 , 255 , 255 ) n ( n - 2 )
Probablemente, (incluyendo negro y while) no será más de alrededor de 14.
Gracias de antemano por cualquier sugerencia sobre cómo obtener estos colores.
Respuestas:
Todos los colores estarán en la superficie del cubo RGB, a menos que me equivoque, por la misma razón que toda la carga eléctrica aparece en la superficie de los conductores eléctricos. Esto sugiere el siguiente método para determinar los colores:
Para , una simulación altamente precisa debería ser bastante rápida; podría usar una técnica Runge Kutta, o incluso el método de Euler con un pequeño paso de tiempo probablemente podría hacerlo (mucho más fácil de implementar / comprender). Podría sugerir la serie "Recetas numéricas" para la integración numérica / técnicas de cuadratura de interés.n∼15
Una vez que las partículas convergen, tiene la disposición de los colores al interpretar los puntos como colores. Inicialmente, las partículas se pueden organizar aleatoriamente en la superficie del cubo, con un poco de espacio (ayuda a los problemas de convergencia y estabilidad). Poner grupos pequeños en las caras del cubo debería funcionar.
Para evitar quedarse atascado en un mínimo local (en lugar de global), puede "pulsar" algún pequeño campo eléctrico aleatorio después de la convergencia y ver si el sistema vuelve a la misma configuración, o una diferente. Es poco probable que las partículas colocadas al azar hagan eso en este escenario, pero es posible.
EDITAR:
Como se señaló en los comentarios, la suposición de que las soluciones óptimas deberían estar solo en la superficie probablemente no se cumple para todas las geometrías en el caso discreto.
Afortunadamente, esto tiene poca relación con el resto de la técnica descrita anteriormente. Las partículas se pueden colocar inicialmente en cualquier lugar; solo deje espacio entre los pares de partículas para la estabilidad y la cobertura, y luego repita el sistema para converger, luego pulse varias veces (posiblemente con mayor intensidad) para ver si puede lograr que el sistema converja a una configuración diferente (posiblemente mejor) .
También tenga en cuenta que creo que este método maximizará algo así como "distancia media (¿armónica?) Entre pares de partículas". Si desea maximizar la distancia mínima entre pares de partículas, o algún otro promedio (¿geométrico?) Entre pares de partículas, esto puede no darle la mejor solución.
En cualquier caso, creo que esta técnica le brindará una manera fácil de encontrar buenos conjuntos de colores aproximadamente óptimos ... probablemente no sea necesario obtener soluciones "óptimas" reales para su caso de uso. Naturalmente, si se desea una solución exacta y demostrablemente óptima, la simulación numérica probablemente no sea la mejor opción.
fuente