jueves, 24 de julio de 2014

Leer y mostrar imágenes con MATLAB


De forma habitual, se utilizan las funciones del Image Processing Toolbox de MATLAB para importar, procesar y visualizar imágenes, más concretamente las funciones imread e imshow para leer y mostrar imágenes respectivamente. Pero además de las anteriores, puede utilizarse algunas funciones que forman parte del núcleo de MATLAB para dichas tareas, tales como importdata e image / imagesc, evidentemente pueden presentar ciertos inconvenientes, pero representan una alternativa en el caso de no contar con el toolbox requerido.

Leer una imagen con imread

La sintaxis de la función imread es muy sencilla, a saber:

>> imread('nombre_img','formato');

Donde nombre_img es el nombre de la imagen o bien la ruta completa de la imagen en el caso que no se encuentre en el Current Folder, formato es justamente eso: el tipo de imagen que vamos a leer (PNG, JPG, GIF, TIFF, etc...), es común omitir el segundo argumento e incluir, claro, la extensión del archivo en el nombre del mismo. Para ejemplificar utilizaré una imagen cuyo nombre es "img", en formato jpg y que se encuentra almacenada en el directorio actual de trabajo, luego para leer la imagen se tendría que hacer lo que a continuación se muestra:

>> X=imread('img.jpg');

Al teclear la instrucción anterior MATLAB crea una matriz X en la cual se guarda  la información de cada uno de los píxeles que componen la imagen. Podemos verificarlo utilizando el comando whos como sigue:

>> whos X
  Name        Size                Bytes  Class    Attributes

  X         300x400x3            360000  uint8       

Revisando lo que MATLAB nos devuelve podemos identificar que la matriz creada está compuesta de 300 filas, 400 columnas y tres capas o planos correspondientes al modelo de color RGB (Red, Green, Blue), es decir, cada capa corresponde a la intensidad de cada uno de los colores. Además, la clase de datos utilizados son uint8 (entero sin signo de 8 bits) cuyo rango es de 0 a 255.


Mostrar una imagen con imshow

Una vez se ha leído y almacenado la imagen podemos utilizar la función imshow para visualizarla, la sintaxis de esta función es:

>> imshow(IMG);

Donde IMG es la matriz en la cual se ha guardado la información referente a la imagen. Para nuestro caso:

>> imshow(X);



Utilizando importdata e imagesc

Además de imread, es posible leer una imagen utilizando la función importdata, la sintaxis es:

>> X=importdata('nombre_img');

Para el ejemplo que hemos utilizado:

>> X=importdata('img.jpg');

Una vez almacenada la imagen podemos utilizar la función imagesc para mostrar la imagen:

>> imagesc(X);



Y como tal, el objetivo de esta entrada era simplemente adquirir y visualizar las imágenes. En posteriores entradas se hará referencia a algunas operaciones básicas que pueden aplicarse a una imagen, o mejor dicho, a la matriz que guarda la información de la misma.

No hay comentarios.:

Publicar un comentario