¿Cómo convertir una imagen YIQ a una imagen RGB usando MATLAB?

La conversión de imágenes de un espacio de color a otro es un proceso útil en el procesamiento de imágenes que brinda comodidad y facilita el proceso general al elegir el espacio de color más preciso para trabajar con la imagen. El espacio de color YIQ, como su nombre indica, consta de tres componentes, a saber, Luma (Y), In-Phase (I) y Quadrature (Q).  

Una breve descripción de cada componente es la siguiente.

  • Luma (Y) : Esto describe el brillo de la imagen. Los valores se encuentran en el rango de [0,1] donde 0 corresponde a negro y 1 corresponde a blanco. Los colores aumentan en la imagen a medida que aumenta el valor Y.
  • En fase (I): este componente da una idea de la cantidad de tonos naranjas y azules presentes en la imagen. El rango de esta métrica es [-0.5959, 0.5959] en el que los valores negativos corresponden a los tonos azules de la imagen y los valores positivos corresponden a los tonos naranjas de la imagen. La saturación de color es directamente proporcional al valor I.
  • Cuadratura (Q): similar al componente I, el componente Q da una medida sobre los tonos verdes y morados presentes en la imagen. La cuadratura se encuentra en el rango de [-0.5229, 0.5229] donde los valores negativos corresponden a los tonos verdes y los valores positivos corresponden a los tonos morados de la imagen. La saturación de color es directamente proporcional a la magnitud de Q.
  • La función ntsc2rgb() de Image Processing Toolbox se utilizará para convertir una imagen del espacio de color YIQ al espacio de color RGB.

Acercarse:

  • Lea la imagen de entrada en formato YIQ usando la función imread(). La función imread() en MATLAB permite al usuario habilitar la operación de lectura para el procesamiento.
  • Use la función mencionada anteriormente para convertir la imagen de un espacio de color a otro
  • Muestre ambas imágenes juntas con fines de observación utilizando la función imshow(). La función imshow() en MATLAB permite al usuario habilitar la operación de mostrar/mostrar para mostrar las imágenes.

Usaremos las imágenes integradas de MATLAB con fines ilustrativos. Si el usuario desea usar cualquier otra imagen, una cosa esencial que debe verificarse es que el directorio de la imagen y el código de MATLAB sean los mismos; de lo contrario, se mostrará un mensaje de error. Un ejemplo de este tipo también se ilustra tomando el logotipo de geeks for geeks.

La imagen utilizada en el siguiente ejemplo es un faro. Estas imágenes ya están en el espacio de color RGB, por lo que, con fines de prueba, las convertiremos a YIQ y, usándolas como nueva entrada, las convertiremos nuevamente a YIQ. Las imágenes predeterminadas en formato YIQ son escasas ya que el espacio de color no se usa comúnmente.

Ejemplo 1 :

Matlab

% MATLAB code for convert images in YIQ format
% Reading the Original image and
% converting to YIQ format.
% This YIQ format image will be
% effectively used as input.
% Make sure the image file path is in
% the same directory as code.
I = imread('GFG.jpeg');
J = rgb2ntsc(I);
 
% Creating figure window for the input image
% Displaying the input image
figure;
imshow(J);
 
% Converting YIQ to RGB
K = ntsc2rgb(J);
 
% Displaying the RGB Image
figure;
imshow(K);

Producción:

Figura 1: Imagen de entrada en el espacio de color YIQ

Figura 2: Imagen de salida en espacio de color RGB

Ejemplo 2:

Matlab

% MATLAB code
% Reading the Original image and converting
% to YIQ format. This YIQ format image will
% be effectively used as input.
I = imread('lighthouse.png');
J = rgb2ntsc(I);
 
% Creating figure window for the input image
% Displaying the input image
figure;
imshow(J);
 
% Converting YIQ to RGB
K = ntsc2rgb(J);
 
% Displaying the RGB Image
figure;
imshow(K);

Figura 3: Imagen de entrada en el espacio de color YIQ 

Figura 4: Imagen de salida en espacio de color RGB

Explicación del código:

  • I = imread(‘faro.png’); Esta línea lee la imagen del faro y la almacena en la variable I
  • J = rgb2ntsc(I); Esta línea convierte la imagen al espacio de color YIQ y lo asigna a la variable J y de aquí en adelante se utilizará como imagen de entrada.
  • figura; Esto crea una ventana para mostrar una imagen. Esta ventana de figura en particular se usará para mostrar la imagen de entrada.
  • immostrar(J); Esta línea de código muestra la imagen J en la ventana de la figura definida anteriormente.
  • K = ntsc2rgb(J); Esta línea convierte la imagen YIQ en una imagen RGB usando la función ntsc2rgb() en MATLAB usando operaciones morfológicas matemáticas.
  • figura; Esto crea una ventana para mostrar una imagen. Esta ventana de figura en particular se usará para mostrar la imagen de salida.
  • immostrar(K); Esta línea de código muestra la imagen K en la ventana de la figura definida anteriormente. Por lo tanto, ahora tenemos dos ventanas de figura una al lado de la otra para observar simultáneamente las diferencias que tienen las imágenes cuando se definen en diferentes espacios de color.

Así hemos logrado la tarea de convertir una imagen del espacio de color YIQ al espacio de color RGB.

Publicación traducida automáticamente

Artículo escrito por htripathi6 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 *