12. Elemento Estructural Elemento estructural: Define la forma y el tamaño de la vecindad del píxel que será analizado, para posteriormente alterar su valor Composición: Formada por ceros y unos de forma y tamaño arbitrario en la cual las posiciones donde está el uno define la vecindad Matriz que define el elemento estructural : Tiene un tamaño muy inferior al tamaño de la matriz original que define la imagen a la que modificará
13. Elemento Estructural (II) Origen del elemento estructural Centro=(tamaño+1)/2 Para el elemento estructural cuadrado de tamaño 3x3 el centro será: Centro=(3+1x3+1)/2=2x2 (3x3) 1 1 1 1 1 1 1 1 1
20. Ejemplo de aplicación de la dilatación >> I=imread('pirata.jpg'); >> II=im2bw(I); % Se define el elemento estructural >> eI1=strel('disk', 2) % Se aplica la dilatación >> I1=imdilate(II, eI1);
32. Cerradura (II) % Se define el elemento estructural >> eI1=strel('disk', 5); % Se aplica la cerradura >> III=imclose(II,eI1); Aumentar la definición de formas
33. Comparación entre Apertura y Cerradura Elemento estructural: >> ee=strel('square', 12) Original Apertura Cerradura
34. Comparación entre Apertura y Cerradura (II) Elemento estructural: >> ee=strel('square', 12) Original Apertura Cerradura
41. Otras operaciones compuestas: Transformada de ganancia o pérdida (hit-or-miss) Se define por la siguiente expresión: Imagen Complemento de la imagen Elemento Estructural 1 Elemento Estructural 2 Operación AND de la imagen, erosionada con un elemento estructural y el complemento de la imagen, erosionada con otro elemento estructural
42. Operaciones lógicas entre imágenes >> III=Iⅈ (AND) >> IV=I|II; (OR) >> V=~II;(NO) >> VI=II&~I;(Diferencia) I II
43. Transformada de ganancia o pérdida (hit-or-miss) Conjunto de puntos a los que simultáneamente coinciden B1 en A y B2 en el complemento de A >>b1=strel([0 0 0; 0 1 1; 0 1 0]); >>c1=imerode(a, b1); >>b2=strel([1 1 1; 1 0 0; 1 0 0]); >>c2=imerode(imcomplement(a), b2); >>c3=c1&c2; Función general >>c3=bwhitmiss(a, b1, b2);
44.
45. Transformada de ganancia o pérdida (hit-or-miss) (III) % Se definen los elementos estructurales >> b11=strel([0 0 0; 0 1 1; 0 1 0]); >> b12=strel([1 1 1; 1 0 0; 1 0 0]); >> b21=strel([0 0 0; 1 1 0; 0 1 0]); >> b22=strel([1 1 1; 0 0 1; 0 0 1]); >> b31=strel([0 1 0; 1 1 0; 0 0 0]); >> b32=strel([0 0 1; 0 0 1; 1 1 1]); >> b41=strel([0 1 0; 0 1 1; 0 0 0]); >> b42=strel([1 0 0; 1 0 0; 1 1 1]); % Se identifican los píxeles que definen las esquinas del rectángulo >> III=bwhitmiss(II, b11, b12); >> IV=bwhitmiss(II, b21, b22); >> V=bwhitmiss(II, b31, b32); >> VI=bwhitmiss(II, b41, b42); % Se unen las esquinas identificadas >> VII=III+IV+V+VI; % Se amplía para visualizar >> VIII=imdilate(VII,ee); >> imshow(VIII)
46. Obtención del perímetro Sustracción a la imagen la erosión de la imagen >>ee = strel('diamond',3) >>bw1=imerode(bw, ee); >>bw2=bw-bw1; El perímetro puede ser más delgado en función del elemento estructural que se utilice
47. Obtención del perímetro (II) Sustracción a la dilatación de la imagen la erosión de la propia imagen >>I1=imdilate(I,ee); >>I2=imerode(I,ee); >>I3=imsubtract(I1,I2);
48. Obtención del perímetro (III) % Se erosiona y sustrae >> eI1=strel('square', 5); >> V=imerode(IV,eI1); >> VI=imsubtract(IV,V); % Se dilata y sustrae la imagen erosionada >> VII=imdilate(IV,eI1); >> VIII=imsubtract(VII,V);
51. Llenar huecos (II) >> points=[122,147;146,396;308,233] points = 122 147 146 396 308 233 >> II = imfill(I,points);
52. Conectividad % Función para calcular el perímetro BW2 = bwperim(BW1,conn) Conectividad Depende de la vecindad de un píxel Vecindad horizontal/vertical Vecindad diagonal
59. Transformación top hat Sustrae a la imagen la apertura de la imagen Aplicación: Extrae detalles brillantes en presencia de sombras >> se=strel('square',3); >> IV=imsubtract(II,imopen(II,se)); >> III=bwmorph(II,'tophat'); >> II=im2bw(I); Equivale a
60. Transformación bottom hat Sustrae a la imagen la cerradura de la imagen Aplicación: Detalles oscuros en zonas iluminadas >> se=strel('square',3); >> IV=imsubtract(II,imclose(II,se)); >> III=bwmorph(II,‘bothat'); >> II=im2bw(I); Equivale a
62. Identificar objetos y relleno >>III=bwlabel(II,4) >> IV=max(max(III)) IV = 6 %Índices a valores zona 4 >>V=find(III==4); % Los lleno de ceros (negro) >> II(V)=0; %Clasifica zonas 4 conectadas %Cantidad de zonas
67. Esqueleto de un conjunto Función Matlab para la obtención del esqueleto Esqueleto: Se obtiene a partir de sucesivas erosiones de la imagen hasta que la misma no se convierta en un conjunto vacío (las sucesivas erosiones se realizan hasta que los píxeles sucesivos no se separen) >> bw1=bwmorph(bw, 'skel', Inf);
70. Reconocimiento de caracteres escritos Ejecutar un algoritmo que lea el código postal en un sobre escrito a mano, tome como referencia los siguientes pasos: a.- Binarizar la imagen b.- Erosionar para separar las posibles uniones entre números c.- Dilatar para recomponer números que tengas discontinuidades d.- Calcular el esqueleto de cada componente e.- Identificar con un sistema de inteligencia artificial (redes neuronales o sistemas neuroborrosos)