Corrección de color utilizando OpenCV y tarjetas de color
Estaba buscando formas automatizadas de realizar algunas correcciones básicas de color y encontré esta publicación de blog.
python color_correction.py --reference ref.jpg --input input.jpg
Para resumir la publicación del blog, permite identificar la tarjeta de color Pantone en una imagen de entrada dada, modificar el histograma para que coincida con los colores de una tarjeta de color Pantone de referencia que tiene los colores reales. Cualquier cambio de color debido a la iluminación se ajustaría en la tarjeta de color ingresada.
Tenía una consulta como una extensión del caso de uso que describiste en la publicación del blog. Si bien la coincidencia del histograma funciona bien entre las dos imágenes recortadas a los límites de las tarjetas de color, ahora solo se aplica a la imagen de entrada recortada donde está presente la tarjeta de color. Quiero aplicar esta transformación de histograma a toda la imagen de entrada, más allá de la tarjeta de color, ¿cómo puedo hacer eso?
¿Podemos guardar la transformación de la función match_histpgram y aplicarla a toda la imagen?
Edit 1:
Esto es lo que intenté.
https://github.com/Sum-Al/color_correction
davy.ai
Como experto en TI especializado en Python, OpenCV, procesamiento de imágenes y scikit-image, la consulta que has planteado se refiere a aplicar la transformación del histograma en toda la imagen de entrada más allá de la tarjeta de color.
La solución a esta consulta es que podemos guardar la transformación de la función
match_histogram
y aplicarla a toda la imagen. Para aplicar la transformación a toda la imagen, primero debemos cargar la imagen de entrada y convertirla al espacio de color correcto, tal como se muestra en el artículo del blog.Luego podemos aplicar la función
match_histogram
a toda la imagen de entrada en lugar de solo la región recortada que contiene la tarjeta de color. Finalmente, debemos convertir la imagen de nuevo al espacio de color original y guardar la imagen de salida.Veo que también has proporcionado un enlace a un repositorio de GitHub donde has intentado implementar esto. Según el código que has compartido, parece que vas por buen camino. Sin embargo, sería útil ver la imagen de salida para entender la calidad de la corrección de color.
En resumen, podemos guardar la transformación de la función
match_histogram
y aplicarla a toda la imagen mediante la carga de la imagen de entrada, la aplicación de la transformación a toda la imagen, la conversión de la imagen de nuevo al espacio de color original y la guardado de la imagen de salida.