Visualización de colores en imágenes usando histograma en Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *