Imágenes - Parte IV

Anuncio
Imágenes - Parte IV
Taller de Informática I
DC - FCEyN - UBA
11 de noviembre de 2015
Taller de Informática I
11 nov 2015
Taller de Informática I
11 nov 2015
Segmentación
Segmentar es subdivir una imagen en sus regiones u objetos de interés
Los algoritmos de segmentación están basados en una de las dos
propiedades básicas de los valores de intensidad de la imágenes:
los bordes dentro de una imagen(Prewitt, Sobel, Roberts)
similaridad de acuerdo a un criterio predefinido.
Taller de Informática I
11 nov 2015
Segmentación básica: Umbralización o Thresholding
Observando el histograma y tomando como umbral donde haya una
separación entre dos grupos de intensidad
Taller de Informática I
11 nov 2015
Segmentación básica: Umbralización o Thresholding
Encontrando un algoritmo que determine el mejor umbral para cada
imagen. Matlab tiene implementado el algoritmo de Otsu, su función
umbral=graythresh(M)
Taller de Informática I
11 nov 2015
Segmentar usando morfologı́a Matemática
Utiliza elementos estructurantes (se) para analizar imagenes binarias.
Un se es una máscara pequeña centrada en cada pixel
Matlab crea un se con la función strel.
Taller de Informática I
11 nov 2015
Operaciones fundamentales
Las operaciones fundamentales son erosion y dilation.
erosion contrae objetos
dilation expande objectos.
Taller de Informática I
11 nov 2015
Erosión
A − B = {a − b : a ∈ A ∧ b ∈ B}
Ejemplo:
A={(1,1),(1,2),(1,3),(1,4),(1,5),(2,1),(3,1),(4,1),(5,1)}
B={(0,0),(0,1)}
A-B ={(1,1),(1,2),(1,3),(1,4)}
Taller de Informática I
11 nov 2015
Dilatación
A ⊕ B = {a + b : a ∈ A ∧ b ∈ B}
Ejemplo:
A={(0,1),(1,1),(2,1),(2,2),(3,0)}
B={(0,0),(0,1)}
A \oplus B={(0,1),(1,1),(2,1),(2,2),(3,0),
(0,2),(1,2),(2,2),(2,3),(3,1)}
Taller de Informática I
11 nov 2015
originalBW = imread(’text.png’);
se = strel(’line’,11,90);
erodedBW = imerode(originalBW,se);
figure, imshow(originalBW)
figure, imshow(erodedBW)
Taller de Informática I
11 nov 2015
% con imgenes de grises
originalI = imread(’cameraman.tif’);
se = strel(’ball’,5,5);
erodedI = imerode(originalI,se);
figure, imshow(originalI), figure, imshow(erodedI)
Taller de Informática I
11 nov 2015
originalBW = imread(’text.png’);
se = strel(’line’,11,90);
dilatedBW = imdilate(originalBW,se);
figure, imshow(originalBW), figure, imshow(dilatedBW)
Taller de Informática I
11 nov 2015
%con imagen grayscale con mscara rolling ball:
originalI = imread(’cameraman.tif’);
se = strel(’ball’,5,5);
dilatedI = imdilate(originalI,se);
figure, imshow(originalI), figure, imshow(dilatedI)
Taller de Informática I
11 nov 2015
Ejemplo de Segmentación
I = imread(’rice.png’);
I2 = imclearborder(I);
figure(1)
subplot(1,2,1),imshow(I)
subplot(1,2,2), imshow(I2)
Taller de Informática I
11 nov 2015
Ejemplo de Segmentación
umbral=graythresh(I)
BW = im2bw(I);
%busco un umbral a mano mayor a u y menor a u me quedo con 0.2
BW2 = im2bw(I2,0.3);
BW2 = im2bw(I2,0.6);
BW2 = im2bw(I2,0.4);
%umbral=0.2
BW2 = im2bw(I2,0.2);
figure(2),subplot(1,2,1),imshow(BW),subplot(1,2,2), imshow(BW2)
Taller de Informática I
11 nov 2015
Ejemplo de Segmentación
[L n] = bwlabeln(BW2);
figure(3),imshow(L)
Taller de Informática I
11 nov 2015
Ejemplo de Segmentación
%selcciono una subimagen donde conozco cuantas regiones hay con ginput(2
imshow(BW2(15:84,200:244));
A=BW2(15:84,200:244);
[L n] = bwlabeln(A); %binariza seg\’un umbral automatico y reconoce n re
figure(4), imshow(L)
Taller de Informática I
11 nov 2015
Ejemplo de Segmentación
RGB = label2rgb(L, ’jet’, ’k’);%colorea
figure(5), imshow(RGB)
Taller de Informática I
11 nov 2015
Ejemplo de Segmentación
P = bwperim(L,8);% toma como regiones los que tienen
figure(6),imshow(P)
Taller de Informática I
11 nov 2015
desde 8 conectados
f u n c t i o n [ Hero n1 n2 ] = b a c t e r i a s ( )
%UNTITLED2 Summary o f t h i s f u n c t i o n g o e s h e r e
%
D e t a i l e d e x p l a n a t i o n goes here
H = i m r e a d ( ’ h e l a . j p g ’ ) ; f i g u r e , imshow (H) , t i t l e ( ’ o r i g i n a l
’)
Haux = H ;
Haux ( : , : , 2 ) = 0 ; f i g u r e , imshow ( Haux ) , t i t l e ( ’ o r i g i n a l
, banda 2 = 0 ’ )
Haux ( : , : , 3 ) = 0 ; f i g u r e , imshow ( Haux ) , t i t l e ( ’ o r i g i n a l
, Banda 2 = 0 , Banda 3 =0 ’ )
f i g u r e , i m h i s t ( Haux ( : , : , 1 ) ) , t i t l e ( ’ p l o t H i s t o g r a m a
Banda 1 ’ )
Hbin = o n e s ( s i z e ( Haux ) ) ;
Hbin ( f i n d ( Haux < 1 0 0 ) ) = 0 ; f i g u r e , imshow ( Hbin ) ;
Z = e d g e ( Hbin ( : , : , 1 ) , ’ s o b e l ’ ) ; f i g u r e , imshow ( Z ) , t i t l e ( ’
edge s o b e l ’ )
[ L1 n1 ] = b w l a b e l n ( Z ) ; f i g u r e , imshow ( L1 ) , t i t l e ( ’ B i n a r i a
’)
Hero=e r o s i o n a r ( Haux ( : , : , 1 ) ) ;
[ L2 n2 ] = b w l a b e l n ( Hero ) ; t i t l e ( ’ e r o s i o n a d a ’ )
f i g u r e , imshow ( L1 )
end
Taller de Informática I
11 nov 2015
Modelo de Elevación Digital
Taller de Informática I
11 nov 2015
Modelos digitales de Elevación- Introducción
Importancia
Los Modelos de Elevación Digital o DEM alcanzan importancia debido a
que son datos topográgicos digitales de gran interés por su origen y el
conocimiento que representan.
La precisión de DEM en la simulación de los verdaderos parámetros
terrestres de elevación, pendiente y aspecto mejora significativamente la
calidad y calibre del conocimiento en numerosas aplicaciones en la tierra,
ambiental y ciencias de la ingenierı́a .
Taller de Informática I
11 nov 2015
¿Qué es un DEM ?
Definiciones de DEM
Un DEM proporciona una representación digital de una porción de la
terreno superficie de la tierra sobre una superficie de dos dimensiones
(UNEP/GRID) http://www.grid.unep.ch.
Un DEM es una matriz ordenada de números que representa la la
distribución espacial de las elevaciones por encima de algún arbitraria
datums en el paisaje ( Meijerink et al.,1994 )
Un DEM es un archivo digital que consiste en elevaciones del terreno para
posiciones suelo a intervalos regularmente espaciados horizontales (USGS )
Taller de Informática I
11 nov 2015
DEM vs DTM
Diferencias
Digital Terrain Model (DTM) representa información del terreno usando
muestreo de valores dicretos como pendiente, por ej.
DEM representa los datos de elevación.
Taller de Informática I
11 nov 2015
Estructura del DEM
Lı́neas
Describen la elevación del terreno por los contornos (almacenada en forma
de gráficos digitales de lı́nea, DGLS), los pares x,y a lo largo de cada uno
contornos de elevación especificada
Taller de Informática I
11 nov 2015
Estructura del DEM
GRID
Las elevaciones se almacenan en una serie de cuadrı́culas.
Taller de Informática I
11 nov 2015
Estructura del DEM
tin
Net Triangular Irregular, es una red de interconexión tringulos con nodos
espaciados irregularmente o puntos de observación con coordenadas x, y, z
valores. Ventaja sobre GRID es su capacidad para generar ms información
en reas de relieve complejo.
Taller de Informática I
11 nov 2015
Procesamiento DEM
Remover hendiduras (Sinks)
Cálculo de pendientes (Slopes)
Dirección de pendiente (Aspect)
GRID Acumulation (Flow Accumulation)
Stream Order
Taller de Informática I
11 nov 2015
Ejemplo Matlab
http://dds.cr.usgs.gov/srtm/version2 1/SRTM3/South America/
Archivo: S43W065.hgt indica 43o de latitud sur y 65o longitud
oeste
Taller de Informática I
11 nov 2015
Ejemplo Matlab
[ f i d 1 , mess ]= f o p e n ( ’ S35W059 . h g t ’ , ’ r b ’ , ’ b ’ ) ;
fopen: Abre un archive y obtiene información acerca de él. La información la
guarda en fid1 junto a mensaje en mess.
fid1: es un número entero que identifica el archivo.
mess: mensaje de error si el archivo no puede ser abierto.
Argumentos:
Nombre del archivo: entre comillas se coloca el nombre del archivo a abrir
Permisos:
Tipo de archivo
En fid1 tengo un identificador de archivo.
Taller de Informática I
11 nov 2015
Ahora tenemos que recuperar los datos:
fread: Lee los datos de un archivo cuyo identificador se obtuvo con fopen.
[ A , c o u n t ]= f r e a d ( f i d 1 , [ 1 2 0 1 , 1 2 0 1 ] , ’ b i t 1 6 ’ ) ;
A: matriz donde se guardan los datos obtenidos
count: cantidad de elementos leı́dos en A
Argumentos:
fid1: obtenido con fopen
[MxN]: tamaño de A
’bit16’: formato en 16 bits
Con fclose cerramos el archivo utilizando el identificador obtenido con fopen:
fclose ( fid1 ) ;
Taller de Informática I
11 nov 2015
Procesar la Matriz A
1) Trasponemos para que esté en igual posición que el mapa.
A=A ’ ;
A=f l i p u d (A) ;
2) Muchas veces los datos de un archivo .htg contienen errores que estn
dados por números negativos. Por lo tanto, recorrer la matriz y corregir
estos problemas:
f o r i =1: s i z e (A , 1 )
f o r j =1: s i z e (A , 2 )
i f ( A( i , j ) < −10000 )
A( i , j ) = A( i −1 , j ) ;
end ;
end ;
end ;
Taller de Informática I
11 nov 2015
Procesar la Matriz A
3) Por último, trataremos de bajar un poco la resolución de la imagen que
tenemos para que no tarde tanto al mostrar y usamos la función surf para
mostrar la imagen en 3d:
B = A( 5 0 0 : 8 0 0 , 200:500) ;
axis ([0 ,120 ,0 ,120]) ;
s u r f (B)
Taller de Informática I
11 nov 2015
4) Por último agregamos color a la imagen usando la función shading. Esta
función posee 3 maneras de ejecución:
a) shading flat: cada segmento de la malla del grfico posee un color
constante
subplot (3 ,1 ,1)
sphere (16)
axis square
shading f l a t
t i t l e ( ’ F l a t Shading ’ )
Taller de Informática I
11 nov 2015
b) shading faceted: se muestran las lı́neas negras de la malla. Es la forma
default
subplot (3 ,1 ,2)
sphere (16)
axis square
shading faceted
t i t l e ( ’ Faceted Shading ’ )
Taller de Informática I
11 nov 2015
c) shading interp: varı́a el color de cada segmento interpolando los colores a
lo largo de la linea
subplot (3 ,1 ,3)
sphere (16)
axis square
shading interp
t i t l e ( ’ InterpolatedShading ’ )
Taller de Informática I
11 nov 2015
Código Completo
[ f i d 1 , mess ]= f o p e n ( ’ S35W059 . h g t ’ , ’ r b ’ , ’ b ’ ) ;
[ A , c o u n t ]= f r e a d ( f i d 1 , [ 1 2 0 1 , 1 2 0 1 ] , ’ b i t 1 6 ’ ) ;
fclose ( fid1 ) ;
A=A ’ ; A=f l i p u d (A) ;
f o r i =1: s i z e (A , 1 )
f o r j =1: s i z e (A , 2 )
i f ( A( i , j ) < −10000 )
A( i , j ) = A( i −1, j ) ;
end ;
end ;
end ;
B = A( 5 0 0 : 8 0 0 , 200:500) ;
axis ([0 ,120 ,0 ,120]) ;
s u r f (B) , s h a d i n g i n t e r p , v i e w ( 0 , 9 0 )
Taller de Informática I
11 nov 2015
Taller de Informática I
11 nov 2015
Descargar