Principios de Tratamientos de imagen en MatLab

Funciones básicas sobre MatLab:


  • Lectura de Imagen: A =  imread('archivo.ext');

Para leer una imagen desde un archivo, si el archivo esta en el directorio actual, solo debemos color el nombre con su extención, si no es así, se requiere colorar el Path completo del archivo.
Si la imagen es a color, nos devolverá 3 matrices de tamaño del ancho y alto de la imagen, una por cada color del sistema de colores RGB.
El punto y coma al final de la instrucción indica a MatLab que no requerimos que nos muestre los valores obtenidos en pantalla, esto es importante, porque de lo contrario el programa tarda demasiado tiempo, mostrando estos valores.

El tamaño lo podemos determinar con el comando: [M, N] = size(A) 'en el caso de imágenes en blanco y negro o tomando solo una matriz de color del RGB.

  • Mostrar una imagen desde un arreglo: imshow(A)


Este comando genera y muestra en una ventana la imagen resultante de una matriz dada.
Con este comando poder hacer visibles los cambios que hagamos al trabajar sobre la matriz de datos anteriormente obtenida desde una imagen o de algún dispositivo de captura de imagen.

  • Guardar una imagen como archivo en disco: imwrite(B, 'nombre.ext')
Este comando permite crear un archivo de imagen y almacenarlo en el path que le indiquemos, y el formato de imagen que indiquemos (entre los soportados por MatLab), solo requiere como parámetros las matriz con los datos de la imagen y que indiquemos el nombre y la extensión de la imagen en una cadena de texto.

  • Conversión de tipos de datos: B = tipodedato(A)
Algunas veces para manipular y trabajar sobre las matrices de imagen, requeriremos que estas estén definidas por un tipo de dato especifico, y con esto limitadas entre un rango especifico de números.
Por ejemplo si nosotros utilizamos im2uint8(A) nos devuelve una matriz de datos con valores que van del 0 - 254, y si nosotros usamos mat2gray(A) esto resultara en una matriz con valores de 0.0 - 1.0 (flotante) los cambios de dimensión numérica los realiza MatLab por si solo.

  • Indexado:
Una parte importante a comprender en MatLab es  la forma en la que se realiza el indexado, indexado es la forma en la que se llama un elemento especifico de un arreglo de datos (vector, matiz, etc).
Suponiendo que tenemos un arreglo de la siguiente manera (donde los espacios son la separación entre elementos):
v = [1 2 3 4 5]
Si nosotros queremos obtener el segundo valor del arreglo utilizaremos v(2) y esto nos devolverá el valor 2.
Suponiendo una matriz de 2 dimensiones dadá por (donde los espacios son divisiones en columnas y el carácter ; divide las filas):
A = [1 2 3;4 5 6;7 8 9]
1  2  3
4  5  6
7  8  9
Podemos requerir elementos de este arreglo con 2 parámetros el primero son las filas y el segundo columnas de la manera A(Filas,Columnas):
A(3,2) ----------> 8
A(2,:)------------> 4 5 6 (utilizando el carácter : como comodín que indica todas)
A(:,1)------------>1
                           4
                           7

  • Ejemplo básico de uso:
//leemos una imagen cualquiera
A = imread('test.jpg')
//guardamos cada matriz de intensidad de color por separado (RGB) en archivos individuales.
imwrite(A(:,:,1), 'rTest.jpg')
imwrite(A(:,:,2), 'gTest.jpg')
imwrite(A(:,:,3), 'bTest.jpg')
//con esto obtenemos las intensidades de cada canal, demostradas en imagenes a escala de grises.


Referencia: MATLAB Y SIMULINK Procesamiento digital de imagenes. Erick Cuevas.

0 comentarios: