PUBLICIDAD
Formatos de imágenes - Visión artificial
Introducción
Existen una gran cantidad de formatos de imágenes, y para saber cuál utilizar en nuestros sistemas de visión, primero debemos saber sus características. En este artículo conoceremos los formatos de imágenes más utilizados, y además aprenderemos a leer y mostrar imágenes mediante el software MATLAB.
Marco teórico
Primero comenzaremos mencionando que hay dos tipos de imágenes: Vectoriales y de mapa de bits.
- Vectoriales: Este tipo de imágenes está compuesta por figuras geométricas: líneas, círculos, rectángulos, etc. Estos objetos están fijados en ciertas áreas de la imagen, y su tamaño e incluso forma se definen matemáticamente. Lo que hace a la imagen vectorial muy interesante es que no pierde calidad, es decir, por más que uno haga zoom, la imagen no se pixeleará, y precisamente esto es porque no está formada por pixeles.
- Mapa de bits: Es el formato que más utilizamos comúnmente. Este tipo de imágenes está formada por pixeles, en donde cada pixel tiene su respectiva intensidad de gris. Esta imagen tiene cierta desventaja, y es que al momento de redimensionarla perderá calidad la imagen. Por ejemplo, si agrandamos la imagen (dependiendo de cuanto la agrandemos), al momento de rellenar los pixeles vacíos habrá una pérdida de calidad. Y si se hace más pequeña también habrá pérdida, pues se eliminaran pixeles para poder efectuar la operación.
Como las imágenes de
Mapa de bits son las que más utilizamos, en este curso de
Sistemas de visión son con las que trabajaremos. Dentro de ese tipo de imágenes hay una gran cantidad de formatos, los más famosos son:
- JPEG: Sus siglas se refieren a “Joint Photographic Experts Group”, por su traducción “Grupo de Expertos Fotográficos Unidos”. Es un formato cuya función es comprimir una imagen de alto peso y transformarla a una de un menor peso. Al convertir una imagen a este formato, nuestra imagen resultante ya no será igual a la original. Eso sí, podemos elegir una baja o alta compresión de calidad. Evidentemente, eligiendo una alta compresión, nuestra imagen perderá gran cantidad de información y por lo tanto, de calidad, pero obtendremos una imagen con un peso muy ligero.
- PNG: Sus siglas se refieren a “Portable Network Graphic”, por su traducción “Gráfico portable para la red”. Es un formato relativamente reciente y sale como alternativa al formato GIF, con la ventaja de que PNG si puede utilizar más de 256 colores. Al igual que JPEG, se puede comprimir la imagen reduciéndola a un bajo peso. Otra característica es que permite tener niveles de transparencia, a diferencia de otros formatos que rellenan la transparencia con fondo blanco o negro.
- GIF: Sus siglas se refieren a “Graphic Interchange Format”, por su traducción “Formato de intercambio de gráficos”. Este formato tiene como característica aceptar contener de 2 a 256 colores, un rango de colores muy bajos. Su característica principal es poder realizar animaciones con este formato.
- BMP: Sus siglas se refieren a “Bitmap”, por su traducción “Mapa de bits”. Es un formato desarrollado por Microsoft para Windows. Puede llegar a guardar imágenes de hasta 24 bits, además de que su compresión puede ser sin pérdida de calidad. Sin embargo, debido a la alta calidad que presenta este formato, el peso de la imagen puede ser muy grande, lo que lo deja casi fuera del panorama en aplicaciones del tipo web.
- TIFF: Sus siglas se refieren a “Tagged Imagen File Format”, por su traducción “Formato de Archivo de Imágenes con Etiquetas”. Es un formato que guarda imágenes de alta calidad de hasta 32 bits. Debido a la alta calidad con la que guarda imágenes, el peso de un archivo puede ser muy grande.
- RAW: Por su traducción “Bruto”. La principal característica de este formato es que no tiene pérdida de calidad, incluso contiene toda la información de la imagen tal como la obtuvo el sensor de la cámara. Por lo tanto, tener este tipo de imágenes nos permite una gran rama de posibilidades en cuanto a edición se refiere. Sin embargo, como guarda toda la información de la imagen, el peso del archivo será muy grande.
Como podemos notar, hay una gran cantidad de formatos, y la lista sigue creciendo. Sin embargo, para el uso de nuestras prácticas normalmente utilizaremos los formatos JPEG y PNG. Ahora analizaremos algunas funciones de MATLAB para la lectura de imágenes:
Comando imread: Esta función tiene como propósito leer una imagen, con la posibilidad de guardarlo en una variable. Su sintaxis es la siguiente:
Código:
Variable= imread('direccion_de_la_imagen');
|
---|
Donde “Variable” es el nombre de la variable con la que identificaremos a nuestra imagen, y “dirección_de_la_imagen”, es la dirección de nuestra computadora en donde está guardada la imagen. Si la imagen se encuentra fuera de las carpetas de MATLAB, si es necesario poner la ruta completa, pero si la imagen se encuentra dentro de las carpetas de MATLAB, no es necesario poner la ruta completa, solo basta con poner el nombre de la imagen y su formato, ejemplo “imagen.png”. En el ejercicio de más adelante veremos cómo utilizar esta función exactamente.
Comando imshow: Su función es mostrar una imagen o matriz que tengamos guardada como variable. Su sintaxis es la siguiente:
Código:
Al escribir “figure;” le indicamos a MATLAB que habrá o cree una figura nueva. Si no escribimos esto, la imagen se sobrescribirá en una figura que hayamos creado previamente, por lo que puede borrar información. En la función “Imshow”, dentro de los paréntesis ira la variable en donde esta guardada nuestra imagen.
Comando title: Su función es mostrar un título o un encabezado dentro de una figura, gráfica o imagen. Su sintaxis es la siguiente, y debe ir justo después del código para mostrar la imagen (imshow):
Código:
title('Titulo de la imagen o grafica');
|
---|
Comentarios: A lo largo del programa estaremos comentando nuestro código en MATLAB, para hacerlo solamente se debe utilizar el símbolo “%” y enseguida el comentario. La sintaxis es la siguiente:
Código:
%Aquí estará nuestro comentario
|
---|
Publicidad
Ejercicio
Realizar un programa que guarde varias imágenes de distintos formatos y después las muestre.
*Nota: En este caso, las imágenes que se utilizarán están dentro de la carpeta de MATLAB, es decir, ya vienen instaladas de manera predefinida, por lo que no es necesario escribir la ruta completa de las imágenes. Si el usuario intenta ejecutar este código tal como está, debe funcionar correctamente, pues dichas imágenes se guardan en la computadora al instalar MATLAB.
Código:
%Lector de imágenes - Versión 1.0 - Por SolucionIngenieril.com
%Programa que lee y muestra imágenes en distintos formatos
%Imagen en formato TIFF
TIF= imread('AT3_1m4_01.tif'); %Leemos la imagen y guardamos en TIF
figure; %Creamos figura
imshow(TIF); %Mostramos imagen
title('Imagen TIFF'); %Mostramos la imagen con ese titulo
%Imagen en formato PNG
PNG= imread('toysflash.png'); %Leemos la imagen y guardamos en PNG
figure;
imshow(PNG);
title('Imagen PNG');
%Imagen en formato JPEG
JPG= imread('office_5.jpg');
figure;
imshow(JPG);
title('Imagen JPEG');
|
---|
Resultados
Mostrando imagen TIFF

Mostrando imagen PNG

Mostrando imagen JPEG

Conclusión
Para comenzar a realizar procesamiento de imágenes es necesario saber con qué tipos de formatos podemos trabajar, y cual se adecua más a nuestras necesidades. En esta práctica conocimos algunos de los formatos más famosos, y empezamos a manejar un poco de programación con MATLAB, aprendiendo como leer, guardar y mostrar imágenes con este software.