En este artículo, discutiremos cómo visualizar colores en una imagen usando histograma en Python.
Una imagen consta de varios colores y sabemos que cualquier color es una combinación de rojo, verde, azul. Entonces, la imagen consta de colores rojo, verde y azul. Entonces, usando Histograma, podemos visualizar cuánta proporción tenemos de colores RGB en una imagen.
El histograma en realidad proporciona la frecuencia con la que aparecen varios colores en una imagen, pero no la ubicación del color en una imagen. Para visualizar los colores en la imagen, debemos seguir los siguientes pasos:
Implementación paso a paso
Paso 1: importar los módulos necesarios
Para este Concepto necesitamos principalmente 2 módulos.
- cv2 : se utiliza para cargar la imagen y obtener los datos RGB de la imagen.
- matplotlib : se utiliza para trazar los histogramas.
Paso 2: Cargar imagen
Para cargar una imagen necesitamos usar el método imread() que está en el módulo cv2. Acepta el nombre de la imagen como parámetro.
Sintaxis:
cv2.imread(‘nombre de la imagen’)
Paso 3: obtenga datos RGB de la imagen
Para obtener los colores RGB de la imagen, el módulo cv2 proporciona un método calchist que acepta el objeto de la imagen, el canal para obtener un color, una máscara, un tamaño de histograma y un rango específicos.
Sintaxis:
cv2.calchist([imageObject], [channelValue], mask, [histSize], [low,high])
Parámetros:
- imageObject- Nombre de la variable en la que se carga la imagen.
- channelValue- Acepta 0,1,2 valores. Nos ayuda a conseguir el color deseado.
- 0 indica azul, 1 indica rojo, 2 indica verde.
Paso 4: Trazar histogramas
matplotlib proporciona el método hist que se utiliza para dibujar el histograma en datos específicos.
Sintaxis:
matplotlib.hist(datos,color=”valor”)
Ejemplo :
Según los pasos anteriores, primero importamos los módulos requeridos y luego cargamos una imagen usando el método imread() y usando el método calcHist() para obtener los colores RGB de la imagen y luego trazar los histogramas usando los datos RGB.
Python3
# import necessary packages import cv2 import matplotlib.pyplot as plt # load image imageObj = cv2.imread('SampleGFG.jpg') # to avoid grid lines plt.axis("off") plt.title("Original Image") plt.imshow(cv2.cvtColor(imageObj, cv2.COLOR_BGR2RGB)) plt.show() # Get RGB data from image blue_color = cv2.calcHist([imageObj], [0], None, [256], [0, 256]) red_color = cv2.calcHist([imageObj], [1], None, [256], [0, 256]) green_color = cv2.calcHist([imageObj], [2], None, [256], [0, 256]) # Separate Histograms for each color plt.subplot(3, 1, 1) plt.title("histogram of Blue") plt.hist(blue_color, color="blue") plt.subplot(3, 1, 2) plt.title("histogram of Green") plt.hist(green_color, color="green") plt.subplot(3, 1, 3) plt.title("histogram of Red") plt.hist(red_color, color="red") # for clear view plt.tight_layout() plt.show() # combined histogram plt.title("Histogram of all RGB Colors") plt.hist(blue_color, color="blue") plt.hist(green_color, color="green") plt.hist(red_color, color="red") plt.show()
Producción
Publicación traducida automáticamente
Artículo escrito por akhilvasabhaktula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA