Búsqueda de sitios web

Convierta BGR y RGB con Python y OpenCV


OpenCV es una biblioteca de funciones de programación principalmente para visión por computadora en tiempo real. La biblioteca es multiplataforma y tiene licencia de software gratuito y de código abierto bajo la licencia Apache. Está escrito en C++ y tiene enlaces de Python que facilitan su uso en aplicaciones de Python.

En este artículo aprenderemos cómo convertir BGR y RGB con Python y OpenCV. Antes de continuar, primero que nada, comprendamos BGR y RGB.

¿Qué son BGR y RGB?

RGB y BGR son modelos de color que se utilizan para representar colores en imágenes digitales. Sin embargo, la principal diferencia entre estos dos modelos de color es el orden en que están dispuestos los canales de color.

  • En el modelo de color RGB, los colores están representados por los canales de color Rojo, Verde y Azul. El canal rojo muestra información sobre la cantidad de color rojo de manera similar para el canal azul y verde. Al combinar esta información, obtenemos la imagen completa.

  • Mientras que en el modelo BGR, que también se llama modelo OpenCV, los canales de color son lo contrario del modelo RGB. Pero la luz particular contiene información sobre la intensidad de esa luz particular.

El diseño de los subpíxeles rojo, verde y azul es la principal distinción entre RGB y BGR. Aunque BGR es básicamente lo contrario de RGB, no hay diferencia en la intensidad y precisión de los colores. Si bien algunas pantallas BGR, como la Gigabyte M27Q, incluso brindan una puntuación de precisión de color adecuada para trabajos de edición, se ven geniales para juegos y películas.

Veamos los pasos para realizar una detección de contorno personalizada basada en semillas usando Python y OpenCV.

Paso 1: importar las bibliotecas necesarias

Para convertir imágenes entre los espacios de color BGR y RGB, necesitamos importar las bibliotecas necesarias. Usaremos las siguientes bibliotecas:

  • OpenCV - Para leer y manipular imágenes.

  • Matplotlib - Para mostrar imágenes.

import cv2
import matplotlib.pyplot as plt

Paso 2: leer la imagen

El primer paso para convertir una imagen entre los espacios de color BGR y RGB es leer la imagen. Podemos usar la función cv2.imread para leer una imagen de un archivo.

En este fragmento, hemos utilizado la función cv2.cvtColor para convertir la imagen BGR a RGB antes de mostrarla usando la biblioteca matplotlib.

# Read the image in BGR color space
img = cv2.imread('image1.jpg')

# Display the image
cv2.imshow('this is normal image in RGB', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Paso 3: Conversión de RGB a BGR

Para convertir una imagen del espacio de color BGR al espacio de color RGB, simplemente necesitamos usar la función cv2.cvtColor y pasar la imagen BGR y la bandera cv2.COLOR_BGR2RGB como entradas.

En este fragmento, convertimos la imagen BGR a RGB y la mostramos usando la biblioteca matplotlib.

# Convert the image from RGB to BGR
bgr_img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)

# Display the BGR image
cv2.imshow('this is BGR image', bgr_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Paso 4: Conversión de BGR a RGB

Para convertir una imagen del espacio de color RGB al espacio de color BGR, podemos usar la misma función cv2.cvtColor y pasar la imagen RGB y el indicador cv2.COLOR_RGB2BGR como entradas.

En este fragmento, convertimos la imagen RGB a BGR y la mostramos usando la biblioteca matplotlib.

# Convert the image from BGR to RGB
rgb_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Display the RGB image
cv2.imshow('this is RGB image', rgb_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Ejemplo

A continuación se muestra el ejemplo completo:

import cv2
import matplotlib.pyplot as plt

# Read the image in BGR color space
img = cv2.imread('image.jpg')

# Display the image
cv2.imshow('This is normal image in RGB', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Convert the image from RGB to BGR
bgr_img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)

# Display the BGR image
cv2.imshow('This is BGR image', bgr_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Convert the image from BGR to RGB
rgb_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Display the RGB image
cv2.imshow('This is RGB image', rgb_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Producción

Imagen original −

RGB a BGR −

Volver a RGB −

Conclusión

En este artículo, explicamos cómo convertir imágenes de BGR a RGB y viceversa. Exploramos los espacios de color RGB y BGR. Hemos seguido todos los pasos para convertir una imagen de una imagen RGB a una imagen BGR. Si sigue todos los pasos de este artículo, puede convertir fácilmente una imagen de un espacio de color a otro utilizando la biblioteca OpenCV del lenguaje Python.

Artículos relacionados: