Matlab

Solo disponible en BuenasTareas
  • Páginas : 12 (2927 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de marzo de 2012
Leer documento completo
Vista previa del texto
PROCESAMIENTO DE IMÁGENES CON MATLAB

lonely113 http://lonely113.blogspot.com

LECTURA DE IMÁGENES
Mediante el comando: Imagen=imread(‘nombre.extensión’); La imagen a leer debe encontrarse en la carpeta de trabajo de Matlab. Los formatos de imagen soportados por Matlab son:
Formato TIFF JPEG Extensión .tiff .jpg

GIF
BMP PNG XWD

.gif
.bmp .png .xwd

lonely113http://lonely113.blogspot.com

Ejemplo: Lectura de una imagen *.jpg
La imagen "fruta.jpg" se encuentra en el directorio de trabajo.

>> Im_RGB=imread('fruta.jpg');

lonely113 http://lonely113.blogspot.com

REPRESENTACIÓN DE IMÁGENES EN MATLAB
En Matlab una imagen en formato de color RGB se representa por tres matrices bidimensionales, correspondientes a los planos R, G y B.

1=R 2=G 3=B
lonely113http://lonely113.blogspot.com

OBTENCIÓN DE LOS PLANOS RGB
Para obtener los planos R, G y B se ejecutan los comandos: Im_R=Imagen(:,:,1) Im_G=Imagen(:,:,2) Im_B=Imagen(:,:,3) Ejemplo:
>> Im_R=Im_RGB(:,:,1); >> Im_G=Im_RGB(:,:,2); >> Im_B=Im_RGB(:,:,3);

lonely113 http://lonely113.blogspot.com

TAMAÑO DE LA IMAGEN
• Obtención del tamaño de Imagen:
>> [m,n,p]=size(Im_RGB) m= 600 n= 800 p= 3Im_RGB: 600x800 3 planos (R,G y B)
lonely113 http://lonely113.blogspot.com

DESPLIEGUE DE IMÁGENES
Se realiza con el comando:
Imshow(Imagen) Donde: Imagen es del tipo uint8.

>> imshow(Im_RGB)

lonely113 http://lonely113.blogspot.com

ESCRITURA DE IMÁGENES
Con el comando:
imwrite(Imagen,’nombre.extensión’);

>> imwrite(Im_RGB,'imagen.jpg');

lonely113http://lonely113.blogspot.com

LECTURA DE VALOR DE PIXELES
Obtención de valor de pixel Imagen(m,n) ; Cuando "Imagen" está en escala de grises (un solo plano).

Imagen(m,n,p) ; Para imagen RGB. Devuelve el valor del pixel correspondiente al plano p (1, 2 ó 3). Donde: m,n son las coordenadas del pixel.

>> Im_RGB(300,300,1) ans = 255 >> Im_RGB(300,300,2) ans = 178 >> Im_RGB(300,300,3) ans = 10
lonely113http://lonely113.blogspot.com

SELECCIÓN MANUAL Y LECTURA DE VALOR DE PIXEL
• Mostrar la imagen con el comando imshow. • Escribir el comando: pixel=impixel; • Click en el pixel y Enter.

>> imshow(Im_RGB) >> pixel=impixel pixel = 252 144 115

lonely113 http://lonely113.blogspot.com

EDICIÓN DE PIXELES
Para modificar el valor de un pixel: Imagen(m,n)=x ; Para una imagen en escala de grises.imagen(m,n,p)=x ; Para una imagen RGB. Donde: "x" es un número entero entre 0 y 255 correspondiente a escala de grises (0=negro y 255=Blanco)

>> Im_RGB(200,750,1)=255; >> Im_RGB(200,750,2)=255; >> Im_RGB(200,750,3)=255;

lonely113 http://lonely113.blogspot.com

PERFIL DE IMAGEN
• • • • Mostrar la imagen con el comando: imshow. Escribir el comando: improfile Trazar la linea para obtener elperfil en la imagen (click en inicio y click en final) y Enter. Si se desea se puede guardar el perfil en una variable. Ejecutando: perfil=improfile;

>> imshow(Im_RGB) >> improfile

300

250

200

150

100

50

0

0

50

100

150

200 250 300 Distance along profile

350

400

450

500

lonely113 http://lonely113.blogspot.com

SUBMUESTREO
Submuestrear unaimagen reduce su tamaño y permite que el procesamiento posterior de la imagen se agilice.
a11 a12 a13 a14 a15 a16 a17 a18 … a1n

Se toman pixeles equidistantes (muestras), dependiendo del factor elegido, y se desecha el resto de pixeles. Imagen_ sub=Imagen(1:a:end,1:a:end,1:1:end) Donde: "a" es el factor de muestreo. Si a=2 la imagen se reduce a la mitad.
lonely113http://lonely113.blogspot.com

Ejemplo: Submuestreo de la imagen Im_RGB por un factor de 4.
>> Im_sub=Im_RGB(1:4:end,1:4:end,1:1:end); >> imshow(Im_sub)

lonely113 http://lonely113.blogspot.com

TRANSFORMACIÓN UINT8-DOUBLE
• En algunos casos es necesario que la imagen a procesar sea del tipo "double", ya que uint8 admite sólo valores enteros entre 0 y 255.
• Para transformar de uint8 a double y viceversa:...
tracking img