MANEJO BSICO DE IMGENES CON MATLAB MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez
Imagen tamao Nx pxeles
!n atla"# Imagen $ atriz%es
&ada elemento de la matriz el
tono de gris para im'genes en (%N
)i la imagen es en color* existen
+ matrices* cada una representa el valor de un tono de color
,os ndices de la matriz son -r*c.*
donde r representa la fila -row. / c la columna -column. 1 1 2 3 4 N 2 M 3 3 4 MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez f(1,1) f(1,2) ... f(1,N) f(2,1) f(2,2) ... f(2,N) f(M,1) f(M,2) ... f(M,N) ,e/endo im'genes de disco# >> f = imread('chestxray.jpg') >> f = imread('D:\imagees\chestxray.jpg') >> f = imread('!h"me!#ser!chestxray.jpg') !sto lo 0ue 1ace es 0ue para una imagen en "lanco / negro* nos crea una matriz f* donde cada elemento tendr' un valor de nivel de gris# f $ MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez 2"teniendo informacin de f# Para determinar el tamao de la imagen# >>si$e(f) as = 1%2& 1%2& )i lo 0ueremos almacenar en una varia"le# >>'M, N( = si$e(f) )i lo 0ue 0ueremos es o"tener informacin m's detallada de la imagen# >>)h"s f Name *i$e +ytes ,-ass f 2&.x/%% 010/%% #it2 array 3rad t"ta- is 010/%% e-emets #sig 010/%% 4ytes MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez ostrando Im'genes# imsh")(f,3) donde f es la imagen a mostrar / G es el n3mero de niveles de intensidad a mostrar4 )i G se omite* se usa 5674 ,a sint'xis es la siguiente imsh")(f,'-") high() imsh")(f,'% /%() imsh")(f) MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez 8na utilidad interesante de ims1o9 es# imsh")(f,'() esto lo 0ue 1ace es expandir el rango din'mico de la imagen* pone como lmite inferior* el valor mnimo de intensidad de la imagen / como lmite superior su valor m'ximo imsh")(f) imsh")(f,'() MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez Dos apuntes m's so"re imsh")(f): pix5a-# )i se e:ecuta pix5a- en la consola de atla"* en la 3ltima figura a"ierta* se podr' ver el valor de intensidad cuando el ratn pasa so"re un pxel concreto4 ; tam"in se puede medir la distancia eucldea entre dos puntos4 atla" usualmente cuando di"u:a una nueva figura* so"reescri"e la ventana de la figura anteriormente mostrada4 Para mostrar la segunda figura en una ventana independiente* e:ecutar lo siguiente >> fig#re, imsh")(f) MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez Guardando im'genes en disco# >> im)rite(f, '"m4re6ficher"') donde f es la matriz 0ue almacena la imagen / filename es el nom"re de fic1ero donde vamos a guardar la imagen4 filename tiene 0ue tener una extensin 0ue reconozca atla"* o usar este otro formato# >> im)rite(f, '"m4re6ficher"', 'tif) !n estas pr'cticas tra"a:aremos con formato tiff /%o :peg4 !n el caso de :peg tam"in se puede especificar la calidad de la imagen# >> im)rite(f, '"m4re.jpg', '7#a-ity', 7) MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez donde 0 es un numero de < a =<< 0ue especifica la calidad de la imagen# ma/or compresin menor calidad menor compresin ma/or calidad < 6< =<< 444 444 2"teniendo informacin de un fic1ero imagen almacenado en disco# >> imfif" "m4re6ficher" MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez >> imfif" pr#e4a.jpg as = 8i-eame: 'pr#e4a.jpg' 8i-eM"dDate: '%29fe492%%/ 11:12:10' 8i-e*i$e: :12/ 8"rmat: 'jpg' 8"rmat;ersi": '' <idth: :%% =eight: &.& +itDepth: 2 ,"-"r>ype: 'graysca-e' 8"rmat*igat#re: '' N#m4er?f*amp-es: 1 ,"digMeth"d: '=#ffma' ,"dig@r"cess: '*e7#etia-' ,"mmet: AB MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez &lases de im'genes# double uint uint1! uint32 int int1! int32 "in#le $%&' lo#i$&l Do"le precisin* n3meros en punto flotante 0ue varan en un rango aproximado de >=< a =< -? "/tes por elemento. !nteros de ? "its en el rango de @<*566A -= "/te por elemento. !nteros de =7 "its en el rango de @<* 766+6A -5 "/tes por elemento. !nteros de +5 "its en el rango de @<* B5CBC7D5C6A -B "/tes por elemento. !nteros de ? "its en el rango de @>=5?* =5DA -= "/te por elemento. !nteros de =7 "its en el rango de @>+5D7?* +5D7DA -5 "/tes por elemento. !nteros de +5 "its en el rango de @>5=BDB?+7B?*5=BDB?+7BDA -B "/tes por elemento. N3mero en punto flotante de precisi simple* con valores aproximadamente en el rango de >=< a =< -B "/tes por elemento. &ar'cteres -5 "/te por elemento. ,os valores son < = -= "/te por elemento. +<? +<? +? +? MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez Eipos de Im'genes# I()#ene" de inten"id&d# 8na matriz cu/os valores 1an sido escalados para representar intensidad4 Pueden ser uint? uint=74 )i son dou"le* los valores est'n escalados entre @<* =A I()#ene" bin&'i&"* Im'genes 0ue solamente tienen valor < =4 )e representan en atla" a partir de arra/s lgicos4 Para convertir en atla" un arra/ de <Fs / =Fs en arra/ lgico# >>+ = -"gica-(C) Para compro"ar si un arra/ es lgico# >>isD"gica-(C) devuelve un = si es lgica / un < si no lo es4 I()#ene" inde+&d&", I()#ene" RGB* )e ver'n m's adelante MANEJO BSICO DE IMGENES CON MATLAB Grupo de Visin Artificial David Garca Prez &onvirtiendo tipos / clases de im'genes# &omando# &onvirte a# Eipo v'lido de entrada# im2#it2 uint? logical* uint?* uint=7 / dou"le im2#it1: uint=7 logical* uint?* uint=7 / dou"le mat2gray dou"le -@<*=A. dou"le im2d"#4-e dou"le logical* uint?* uint=7 / dou"le im24) logical uint?* uint=7 / dou"le >> f = '% %./E %.1/ 1./( f = % %./%%% %.1/%% 1./%%% >> g = im2#it2(f) g = % 122 1.1 2// GG g $ @< <4+H <4D <4CA g $ < <4+<<< <4D<<< <4C<<< GG g" $ im5"9-g* <47. g" $ < < = =