Me gustaría extraer los colores más utilizados dentro de una imagen, o al menos los tonos primarios ¿Me podrían recomendar cómo puedo comenzar con esta tarea? o apuntarme a un código similar? Lo busqué pero no tuve éxito.extrayendo colores de una imagen
Respuesta
Puede obtener muy buenos resultados usando Octree Color Quantization algorithm. Otros algoritmos de cuantificación se pueden encontrar en Wikipedia.
¡Esto es exactamente lo que estaba buscando! ¡Muchas gracias! – biquillo
podría enviar código de muestra en el objetivo c – dineshprasanna
@dineshprasanna, no, no puedo. Si Google no puede ayudarlo, puede que tenga que escribir el suyo usando la información provista en el enlace. –
Estoy de acuerdo con los comentarios: una solución de programación definitivamente necesitaría más información. Pero hasta entonces, suponiendo que obtendrá los valores RGB de cada píxel en su imagen, debe considerar el HSV colorspace donde se puede decir que el tono representa el "tono" de cada píxel. Luego puede usar un histogram para identificar los tonos más utilizados en su imagen.
NB por "espacio de color HSV" lo más probable es que signifique decir "modelo RGB de modo HSV" - HSV (y su hermana gemela HSL) son distorsiones de un RGB color _model_; casi cualquier persona que se refiera a un modelo RGB (o, erróneamente, un "espacio de color RGB") está tratando con representaciones de valores en el _ espacio_ color CIE-XYZ'39. No tratando de identificar específicamente su respuesta, pero hay usted va. – fish2000
Bueno, supongo que puede acceder a cada píxel de color RGB. Hay dos formas en que puede hacerlo, dependiendo de cómo lo desee.
Primero puede simplemente crear algunos de los píxeles R, G y B. Me gusta esto.
Un pseudo código.
int Red = 0;
int Green = 0;
int Blue = 0;
foreach (Pixels as aPixel) {
Red += aPixel.getRed();
Green += aPixel.getGreen();
Blue += aPixel.getBlue();
}
A continuación, vea cuál es más.
Esto le da solo la imagen es más roja, verde o azul.
Otra forma también le dará estática de color combinado (como el naranja) simplemente creando un histograma de cada combinación RGB.
Un pseudo código.
Map ColorCounts = new();
foreach (Pixels as aPixel) {
const aRGB = aPixel.getRGB();
var aCount = ColorCounts.get(aRGB);
aCount++;
ColorCounts.put(aRGB, aCount);
}
A continuación, ver cuál tiene más recuento. También puede reducir la resolución del color, ya que una coloración RGB regular le proporcionará hasta 6.7 millones de colores.
Esto se puede hacer fácilmente dado el RGB a rangos de color. Por ejemplo, supongamos que RGB es 8 pasos, no 256.
Un pseudo código.
function Reduce(Color) {
return (Color/32)*32; // 32 is 256/8 as for 8 ranges.
}
function ReduceRGB(RGB) {
return new RGB(Reduce(RGB.getRed()),Reduce(RGB.getGreen() Reduce(RGB.getBlue()));
}
Map ColorCounts = new();
foreach (Pixels as aPixel) {
const aRGB = ReduceRGB(aPixel.getRGB());
var aCount = ColorCounts.get(aRGB);
aCount++;
ColorCounts.put(aRGB, aCount);
}
A continuación, puede ver qué rango es el que más cuenta.
Espero que esta técnica tenga sentido para usted.
¡Agradable! ¡Muchas gracias, realmente útil! – biquillo
- 1. Extrayendo * imagen * relevante de una página web
- 2. Colores de imagen cambiantes dinámicamente
- 3. Imagen JPEG con colores incorrectos
- 4. Generación de combinaciones de colores a partir de una imagen
- 5. Generar paleta de colores a partir de una imagen
- 6. Detección de colores para una imagen usando PHP
- 7. Lienzo - ¿Cambiar colores de una imagen usando HTML5/CSS/JS?
- 8. Extrayendo bits
- 9. Convertir una imagen a 2 colores en Java
- 10. Imagen SVG con colores CMYK: ¿es posible?
- 11. Extrayendo datos de ELM327
- 12. extrayendo valores de HashMap
- 13. Extrayendo rgb de UIColor
- 14. ¿Existe una biblioteca js que pueda generar una paleta de colores a partir de una imagen?
- 15. Ruby Regex extrayendo palabras
- 16. TeamCity Extrayendo artefacto Dependencias
- 17. Extrayendo información 'útil' de oraciones?
- 18. Extrayendo cadena de argumentos principales()
- 19. iOS extrayendo cuadros de video como imágenes
- 20. Obtener colores dominantes de la imagen descartando el fondo
- 21. Extrayendo fotogramas de MP4/FLV?
- 22. Botón con AMBOS colores e imagen de fondo
- 23. Extrayendo un subconjunto de valores de una matriz asociativa (php)
- 24. Extrayendo un número de una cadena de 1 palabra
- 25. ImageMagick - ¿Ajusta automáticamente los colores de una imagen a otras aplicaciones de administración de fotografías?
- 26. Extrayendo los últimos n caracteres de una cadena en R
- 27. extrayendo propiedades de NSArray de los objetos
- 28. Extrayendo Actionscript del archivo .fla
- 29. Disposición con diferentes colores
- 30. ¿Cómo se pueden cambiar los colores de una imagen con CSS3?
¿Con qué idioma o marco está trabajando? – jheddings
La respuesta dependerá en gran medida de su entorno. –
Bueno, estaba pensando en procesar solo una prueba de concepto y luego traducirlo a python para lotes – biquillo