es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo extraer los colores dominantes de una imagen en formato hexadecimal y porcentajes utilizando ImageMagick?

Estoy intentando usar ImageMagick para extraer el color dominante de las fotos y obtener los resultados en códigos Hex y listados en porcentajes.

Lo que uso actualmente es este sitio web: http://www.coolphptools.com/color_extract#demo

Si lo visitas y desplazas un poco hacia abajo, verás que para esa flor muestra #f0a800 primero, con un 0.229702%, luego #606030 con un 0.175060%, y así sucesivamente.

Busqué en Google y probé muchos códigos de ImageMagick que encontré en línea, pero no solo no encontré la solución, sino que en todo lo que intenté nunca vi, por ejemplo, “#f0a800” en los resultados. No sé cómo ImageMagick está extrayendo resultados completamente diferentes a los de ese sitio web, pero ahí tienes.

¿Alguien sabe cómo hacer esto con ImageMagick?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en ImageMagick, hay varias formas diferentes de extraer el color dominante de las fotos y obtener los resultados en códigos HEX y porcentajes. Una solución posible sería utilizar la opción “-format” en ImageMagick para generar los datos de píxeles en un formato específico que se pueda analizar para extraer la información del color. Por ejemplo, podrías usar un comando como este:

    convert input.jpg -colors 256 -format %c -depth 8 histogram:info:- | sort -rn | head -n1

    Este comando leería la imagen de entrada, reduciría el número de colores a 256 (para facilitar la búsqueda del color dominante), generaría un histograma de los datos de píxeles en el formato especificado (“%c” para el valor del color), ordenaría la lista resultante en orden descendente (para que el color más común esté en la parte superior) y luego seleccionaría la primera línea de la salida (que debería ser el color dominante). Luego podrías utilizar una expresión regular u otro método para extraer el código HEX y el porcentaje de salida.

    Alternativamente, podrías utilizar la opción “-scale” en ImageMagick para redimensionar la imagen a un tamaño muy pequeño (por ejemplo, 1 píxel) y luego generar la información de color para ese píxel utilizando la misma opción “-format” que antes. Esto te daría una muestra representativa del color dominante en la imagen sin tener que procesar la imagen completa.

    Independientemente del método específico que elijas, vale la pena mencionar que ImageMagick puede producir resultados diferentes a los del sitio web que mencionaste (http://www.coolphptools.com/color_extract#demo), dependiendo del algoritmo específico y las configuraciones utilizadas para determinar el color dominante. También es posible que el sitio web esté utilizando un espacio de color o representación diferente (por ejemplo, HSL en lugar de RGB) que podría afectar los resultados. Si tienes una imagen o un conjunto de imágenes específicas con las que estás trabajando y deseas obtener resultados consistentes, es posible que debas experimentar con diferentes enfoques y comparar la salida con los resultados del sitio web para ver si coinciden.

Comments are closed.