SlideShare una empresa de Scribd logo
Operaciones morfológicas
Operaciones morfológicas Morfología:   Rama de la biología que trata de la forma y estructura de animales y plantas Morfología en imágenes : Herramientas y métodos utilizados para extraer componentes de la misma, útiles en la descripción y representación de formas (contornos, esqueletos, etc….)
Operaciones morfológicas (II) El valor de cada píxel en la imagen de salida depende del valor de ese píxel en la imagen de entrada y su relación con la vecindad Elemento estructural:  Define el tamaño y la forma de la vecindad en la que se aplicará la operación morfológica 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
Dilatación Dilatación:  Se adiciona píxeles al contorno de objetos presentes en la imagen  Píxel de salida:  Máximo de los píxeles presentes en la vecindad definida por el elemento estructural  Imagen de entrada Elemento estructural Imagen de salida 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0
Dilatación (II) Pasos para aplicar la dilatación 1.- Seleccionar el píxel de la imagen original a tratar 2.- Buscar el mayor de los píxeles de la vecindad, incluido el central, definidos por la forma y tamaño del elemento estructural 3.- Sustituir el valor del píxel por el máximo valor   Los anteriores pasos se ejecutan para todos los píxeles de la imagen
Dilatación: Escala de grises % Ejemplo de dilatación % Imagen de entrada I=[0 0 0 0 0 0 0; 0 0 0 0 0 0 0; 0 0 15 27 8 0 0;  0 0 100 95 1 0 0; 0 0 125 30 2 0 0; 0 0 0 0 0 0 0; 0 0 0 0 0 0 0]; imshow(imresize(I,[520,520])); % Se define el elemento estructural Ele=strel('square',3); % Se aplica dilatación I1=imdilate(I, Ele); figure; imshow(imresize(I1,[520,520])); 15 27 8 100 95 1 125 30 2 1 1 1 1 1 1 1 1 1 15 27 8 100 125 1 125 30 2
Dilatación: Escala de grises(II) >> I1 0  0  0  0  0  0  0 0  15  27  27  27  8  0 0  100  100  100  95  8  0 0  125  125  125  95  8  0 0  125  125  125  95  2  0 0  125  125  125  30  2  0 0  0  0  0  0  0  0 % Ejemplo de dilatación % Imagen de entrada I=[0 0 0 0 0 0 0; 0 0 0 0 0 0 0; 0 0 15 27 8 0 0;  0 0 100 95 1 0 0; 0 0 125 30 2 0 0; 0 0 0 0 0 0 0; 0 0 0 0 0 0 0]; imshow(imresize(I,[520,520])); % Se define el elemento estructural Ele=strel('square',3); % Se aplica dilatación I1=imdilate(I, Ele); figure; imshow(imresize(I1,[520,520]));
Dilatación: Escala de grises(III)
Erosión Erosión:  En imágenes binarias, elimina píxeles del contorno de objetos presentes en la imagen  Píxel de salida:  Mínimo de los píxeles presentes en la vecindad definida por el elemento estructural  Imagen de entrada Elemento estructural Imagen de salida 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0
Erosión: Escala de grises Si en el ejemplo anterior del programa MATLAB se sustituye la función  imdilate  por  imerode  resulta:  I=[0  0  0  0  0  0  0; 0  0  0  0  0  0  0; 0  0 15  27  8  0  0;  0  0 100 95 1  0  0; 0  0 125 30 2  0  0; 0  0  0  0  0  0  0; 0  0  0  0  0  0  0]; I1 =[ 0  0  0  0  0  0  0 0  0  0  0  0  0  0 0  0  0  0  0  0  0 0  0  0  1  0  0  0 0  0  0  0  0  0  0 0  0  0  0  0  0  0 0  0  0  0  0  0  0 ] Entrada Salida
Erosión: Escala de grises (II)
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á
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
Elemento Estructural (III) >>  ee=strel('diamond', 3) 0  0  0  1  0  0  0 0  0  1  1  1  0  0 0  1  1  1  1  1  0 1  1  1  1  1  1  1 0  1  1  1  1  1  0 0  0  1  1  1  0  0 0  0  0  1  0  0  0 >>  ee=strel('disk', 4) 0  0  1  1  1  0  0 0  1  1  1  1  1  0 1  1  1  1  1  1  1 1  1  1  1  1  1  1 1  1  1  1  1  1  1 0  1  1  1  1  1  0 0  0  1  1  1  0  0
Elemento Estructural (IV) >>  a=[0 1 0 1; 0 0 0 0; 0 0 0 0;  1 0 1 0]; >>  se=strel('arbitrary',a) 0  1  0  1 0  0  0  0 0  0  0  0 1  0  1  0  >>  ee=strel('line', 7, 135) 1  0  0  0  0 0  1  0  0  0 0  0  1  0  0 0  0  0  1  0 0  0  0  0  1
Elemento Estructural (V) >>  ee=strel('octagon', 3)  0  0  1  1  1  0  0 0  1  1  1  1  1  0 1  1  1  1  1  1  1 1  1  1  1  1  1  1 1  1  1  1  1  1  1 0  1  1  1  1  1  0 0  0  1  1  1  0  0 >> ee=strel('rectangle', [4 3]) 1  1  1 1  1  1 1  1  1 1  1  1
Recuperación de caracteres incompletos   ee=strel('diamond', 1) Sal = imdilate(I,ee); Imagen:  www.imageprocessingplace.com
Referencias de aplicación  de la dilatación ee=strel('disk',18,0); I4=imdilate(I, ee);
Referencias de aplicación  de la dilatación (II) ee=strel('square',20); I5=imdilate(I, ee);
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);
Referencias de aplicación  de la erosión   ee=strel('square',5); I1=imerode(I, ee);
Referencias de aplicación  de la erosión  (II) ee=strel('square',3); I2=imerode(I, ee);
Referencias de aplicación  de la erosión (III) ee=strel('disk',18,0); I3=imerode(I, ee);
Ejemplo de aplicación  de la erosión % Se define el elemento estructural >> eI1=strel('disk', 3) % Se aplica la erosión >> I1=imerode(II, eI1);
Ejemplo de aplicación  de la erosión (II)
Dilatación vs erosión Dilatación Amplía bordes Une objetos próximos Une puntos blancos próximos Elimina detalles negros pequeños Erosión Reduce bordes Separa objetos próximos Elimina puntos blancos separados Amplía detalles negros pequeños
Combinación de la  dilatación y la erosión   Apertura:  Es la realización de una  erosión seguida de una  dilatación , utilizando el  mismo elemento estructural  en  ambas operaciones  Aplicaciones: Suaviza contornos de los objetos Elimina pequeñas protuberancias Rompe conexiones débiles ee=strel('diamond', 2); I1=imerode(I,ee); I2=imdilate(I1,ee); ee=strel('diamond', 2); I2=imopen(I,ee);
Apertura  imshow(I2) ee=strel('diamond', 4); Sal = imopen(I2,ee); Sal1=im2bw(Sal, 0.9);
Apertura (II)  Definir y aislar  formas,  para contar
Combinación de la dilatación  y la erosión (II)   Cerradura:  Es la realización de una  dilatación   seguida de  una erosión , utilizando el  mismo elemento estructural   en ambas operaciones  Aplicaciones:   Rellenar detalles, conectando objetos que están próximos entre sí También suaviza los contornos Rellena vacíos en el contorno Elimina pequeños huecos ee=strel('diamond', 3); I1=imdilate(I,ee); I2=imerode(I1,ee); ee=strel('diamond', 3); I2=imclose(I,ee);
Cerradura   ee=strel('diamond', 3); I2=imclose(I,ee);
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
Comparación entre Apertura y Cerradura   Elemento estructural: >>  ee=strel('square', 12) Original Apertura Cerradura
Comparación entre Apertura y Cerradura  (II) Elemento estructural: >>  ee=strel('square', 12) Original Apertura Cerradura
Comparación entre Apertura y Cerradura  (III) Apertura Cerradura
Ejemplos de Aplicación >> RGB = imread('pillsetc.png'); imshow(RGB); I = rgb2gray(RGB); threshold = graythresh(I); bw = im2bw(I,threshold); Definición de formas
Ejemplos de Aplicación (II) bw = bwareaopen(bw,30); Se eliminan los objetos con menos de 30 píxeles 8 conectados
Ejemplos de Aplicación (III) se = strel('disk',2); bw = imclose(bw,se); Llena espacio existente en el casquillo de la pluma
Ejemplos de Aplicación (IV) Eliminar ruido manteniendo formas Erosionar Dilatar Dilatar Erosionar Apertura Cerradura
Ejemplos de Aplicación (V) Definición de caracteres Programa del ejemplo
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
Operaciones lógicas  entre imágenes >> III=Iⅈ (AND) >> IV=I|II; (OR) >> V=~II;(NO) >> VI=II&~I;(Diferencia) I II
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);
Transformada de ganancia o pérdida (hit-or-miss) (II) Detectar esquinas Aplicaciones: Identificar configuración  predefinida de píxeles Detectar píxeles aislados Puntos finales de líneas
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)
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
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);
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);
Obtención del perímetro (IV) >>III=im2bw(II,.7); >>IV=bwperim(III,8); Conectividad
Llenar huecos Pasos del algoritmo : Imagen “semilla” (todos ceros  excepto un 1) Repetir hasta  % Define imagen semilla II=uint8(zeros(size(I))); [a, b]=size(I); a=uint8(a/2); b=uint8(b/2); II(a,b)=uint8(255); %Aplica el algoritmo ee=strel('square',3); while (I-II)~=0 II=((imdilate(II,ee))& (~I)) end Deben conocerse  los puntos en los  huecos a llenar
Llenar huecos (II) >> points=[122,147;146,396;308,233] points = 122  147 146  396 308  233 >>  II = imfill(I,points);
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
Conectividad (II)  >>  conndef(2,'min') 0  1  0 1  1  1 0  1  0 >>  conndef(2,'max') 1  1  1 1  1  1 1  1  1 Función que define conectividad (dimensión 2) Vecindad 8 Conectividad definida  por el programador >> vertical [0  1  0 0  1  0 0  1  0]
Conectividad (III)  Si conectividad 4: 2 objetos Si conectividad 8: 1 objeto >> conndef(2,'max') 1  1  1 1  1  1 1  1  1 ¿Cuántos objetos? A = 0  0  0  0  0  0 0  1  1  0  0  0 0  1  1  0  0  0 0  0  0  1  1  0 0  0  0  1  1  0 >> conndef(2,'min') 0  1  0 1  1  1 0  1  0
Conectividad (IV)  Determinar el número de objetos n conectados A = 0  0  0  0  0  0  0 0  1  1  0  1  1  0 0  1  1  0  1  1  0 0  0  0  1  1  0  0 0  0  0  1  1  0  0 0  0  0  0  0  0  0 bwlabel(I,n) X=bwlabel(A,4)  % Cuatro conectados X = 0  0  0  0  0  0  0 0  1  1  0  2  2  0 0  1  1  0  2  2  0 0  0  0  2  2  0  0 0  0  0  2  2  0  0 0  0  0  0  0  0  0 X=bwlabel(A,8)  % Ocho conectados X = 0  0  0  0  0  0  0 0  1  1  0  1  1  0 0  1  1  0  1  1  0 0  0  0  1  1  0  0 0  0  0  1  1  0  0 0  0  0  0  0  0  0 2 objetos 4 conectados 1 objeto 8 conectados
Conectividad (V)  Perímetro y objetos n conectados I = 1  1  1  0  0  0  0  0 1  1  1  0  1  1  0  0 1  1  1  0  1  1  0  0 1  1  1  0  0  0  1  0 1  1  1  0  0  0  1  0 1  1  1  0  0  0  1  0 1  1  1  0  0  1  1  0 1  1  1  0  0  0  0  0 III=bwperim(II,4); IV=bwperim(II,8); Misma salida
Conectividad (VI)  >> bwlabel(III,4) 1  1  1  1  0  0  0  0 1  0  1  0  2  2  0  0 1  0  1  0  2  2  0  0 1  0  1  0  0  0  3  0 1  0  1  0  0  0  3  0 1  0  1  0  0  0  3  0 1  0  1  0  0  3  3  0 1  1  1  0  0  0  0  4 >> bwlabel(III,8) 1  1  1  1  0  0  0  0 1  0  1  0  1  1  0  0 1  0  1  0  1  1  0  0 1  0  1  0  0  0  1  0 1  0  1  0  0  0  1  0 1  0  1  0  0  0  1  0 1  0  1  0  0  1  1  0 1  1  1  0  0  0  0  1 Perímetro 4 conectado: Combinación de  4 objetos 4 conectados Perímetro 8 conectado: Un objeto 8 conectados
Función bwmorph BW2 = bwmorph(BW1,Operación,Número de veces que se repite) Operaciones descritas previamente 'dilate‘ 'erode‘ 'open‘ 'close‘ 'skel’ Otras operaciones ‘ bothat‘: Transformación  bottom hat ‘ tophat‘: Transformación  top hat ‘ clean’: Elimina píxeles aislados ‘ fill’: Rellena píxeles interiores aislados
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
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
Relleno de píxeles interiores aislados Aplicación: Clasificar formas Función bwmorph(‘fill’) I = 1  1  1 1  0  1 1  1  1 >> II=bwmorph(I,'fill'); II = 1  1  1 1  1  1 1  1  1 Función  find : Devuelve puntero a valor I = 1  1  1  1  0  0  0  0 1  1  1  0  1  1  0  0 1  1  1  0  0  0  1  0 1  1  1  0  0  1  1  0 1  1  1  0  0  0  0  0 0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  1 >> II=bwlabel(I,4) >> III=find(II==4) >> II(III)=6 II = 1  1  1  1  0  0  0  0 1  1  1  0  2  2  0  0 1  1  1  0  0  0  3  0 1  1  1  0  0  3  3  0 1  1  1  0  0  0  0  0 0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  4 II = 1  1  1  1  0  0  0  0 1  1  1  0  2  2  0  0 1  1  1  0  0  0  3  0 1  1  1  0  0  3  3  0 1  1  1  0  0  0  0  0 0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  6
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
Elimina píxeles interiores aislados Aplicación: Limpiar imagen Función bwmorph(‘clean’) >> B=bwmorph(A,’clean'); A = 0  0  0 0  1  0 0  0  0 B = 0  0  0 0  0  0 0  0  0
Elimina píxeles interiores de una vecindad Aplicación: Obtener perímetro Función bwmorph(‘remove’) >> B=bwmorph(A,’remove'); A = 1  1  1  1  1 1  1  1  1  1 1  1  1  1  1 1  1  1  1  1 1  1  1  1  1 B = 1  1  1  1  1 1  0  0  0  1 1  0  0  0  1 1  0  0  0  1 1  1  1  1  1
Adiciona píxeles a un perímetro hasta mantener una vecindad Aplicación: Agrandar objetos Función bwmorph('thicken’) >> B=bwmorph(A,’thicken‘ ); A  = 0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0 0  0  1  1  1  1  1  0  0 0  0  1  0  0  0  1  0  0 0  0  1  0  0  0  1  0  0 0  0  1  0  0  0  1  0  0 0  0  1  1  1  1  1  0  0 0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0 B = 0  0  0  0  0  0  0  0  0 0  0  1  1  1  1  1  0  0 0  1  1  1  1  1  1  1  0 0  1  1  1  1  1  1  1  0 0  1  1  1  0  1  1  1  0 0  1  1  1  1  1  1  1  0 0  1  1  1  1  1  1  1  0 0  0  1  1  1  1  1  0  0 0  0  0  0  0  0  0  0  0
Ampliación de objeto Mantiene 8 conectados la frontera entre objetos
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);
Esqueleto de un conjunto (II) A = 0  0  0  0  0  0  0  0  0 0  1  0  0  0  0  0  1  0 0  0  1  1  1  1  1  0  0 0  0  1  1  1  1  1  0  0 0  0  1  1  1  1  1  0  0 0  0  1  1  1  1  1  0  0 0  0  1  1  1  1  1  0  0 0  1  0  0  0  0  0  1  0 0  0  0  0  0  0  0  0  0 B = 0  0  0  0  0  0  0  0  0 0  1  0  0  0  0  0  1  0 0  0  1  0  0  0  1  0  0 0  0  0  1  0  1  0  0  0 0  0  0  1  1  1  0  0  0 0  0  0  1  0  1  0  0  0 0  0  1  0  0  0  1  0  0 0  1  0  0  0  0  0  1  0 0  0  0  0  0  0  0  0  0 >> B=bwmorph(A,'skel',Inf) Reduce píxeles del contorno sin separar el objeto
Esqueleto de un conjunto (III)
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)
Operaciones en escala de grises Se define como aquel conjunto de píxeles con  conectividad n  en una imagen  que poseen un nivel de  intensidad t , los píxeles que le rodean poseen  un nivel de intensidad  inferior  a t Región máxima I2 = 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  128  128  128  128  128  51  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  150  192  192  150  150  128  128  128  51  51 51  51  51  128  128  128  150  192  255  192  150  128  128  128  51  51 51  51  51  128  128  128  150  192  192  192  150  128  128  128  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  51  128  128  128  128  128  128  51  51  51  51  51 51  51  51  51  51  51  51  128  128  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51
Operaciones en escala de grises (II) Función:  BW = imregionalmax(I,CONN); Aplicación:  Max=imregionalmax(I2) Región máxima Max = 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
Operaciones en escala de grises (III) Se define como aquel conjunto de píxeles con  conectividad n  en una imagen  que poseen un nivel de  intensidad t , los píxeles que le rodean poseen  un nivel de intensidad  superior  a t Región mínima I2 = 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  128  128  128  128  128  51  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  150  192  192  150  150  128  128  128  51  51 51  51  51  128  128  128  150  192  255  192  150  128  128  128  51  51 51  51  51  128  128  128  150  192  192  192  150  128  128  128  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  51  128  128  128  128  128  128  51  51  51  51  51 51  51  51  51  51  51  51  128  128  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51
Operaciones en escala de grises (IV) Región mínima Min =  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  0  0  0  0  0  1  1  1  1  1 1  1  1  1  0  0  0  0  0  0  0  0  1  1  1  1 1  1  1  1  0  0  0  0  0  0  0  0  0  1  1  1 1  1  1  0  0  0  0  0  0  0  0  0  0  1  1  1 1  1  1  0  0  0  0  0  0  0  0  0  0  0  1  1 1  1  1  0  0  0  0  0  0  0  0  0  0  0  1  1 1  1  1  0  0  0  0  0  0  0  0  0  0  0  1  1 1  1  1  0  0  0  0  0  0  0  0  0  0  1  1  1 1  1  1  0  0  0  0  0  0  0  0  0  0  1  1  1 1  1  1  1  0  0  0  0  0  0  0  0  1  1  1  1 1  1  1  1  1  0  0  0  0  0  0  1  1  1  1  1 1  1  1  1  1  1  1  0  0  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 Función:  BW = imregionalmin(I,CONN); Aplicación:  Min=imregionalmin(I2)
Operaciones en escala de grises (V) Región máxima con umbral Píxeles con valores de intensidad máximo en un intervalo Intensidad = [ I_min ;  I_max ] Región máxima:  [ I_max - nmin ;  I_max ] Ejemplo: nmin = 63 == [192; 255] I2 = 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  128  128  128  128  128  51  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  150  192  192  150  150  128  128  128  51  51 51  51  51  128  128  128  150  192  255  192  150  128  128  128  51  51 51  51  51  128  128  128  150  192  192  192  150  128  128  128  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  51  128  128  128  128  128  128  51  51  51  51  51 51  51  51  51  51  51  51  128  128  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51
Operaciones en escala de grises (VI) Región máxima con umbral Función : BW = imextendedmax(I,H,CONN) Aplicación : I22 = imextendedmax(I2,63) I22 = 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  1  1  0  0  0  0  0  0  0 0  0  0  0  0  0  0  1  1  1  0  0  0  0  0  0 0  0  0  0  0  0  0  1  1  1  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 Región mínima con umbral : BW = IMEXTENDEDMIN(I,H,CONN)
Operaciones en escala  de grises (VII) Región mínima con umbral Píxeles con valores de intensidad mínimo en un intervalo Intensidad = [ I_min ;  I_max ] Región mínima:  [ I_min ;  I_min+nmax ] Ejemplo: nmax = 77 == [51; 128] I2 = 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  128  128  128  128  128  51  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  150  192  192  150  150  128  128  128  51  51 51  51  51  128  128  128  150  192  255  192  150  128  128  128  51  51 51  51  51  128  128  128  150  192  192  192  150  128  128  128  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  51  128  128  128  128  128  128  51  51  51  51  51 51  51  51  51  51  51  51  128  128  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51
Operaciones en escala  de grises (VIII) Región mínima con umbral I22 = 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  0  0  0  0  0  1  1  1  1  1 1  1  1  1  1  1  0  0  0  0  0  1  1  1  1  1 1  1  1  1  1  1  0  0  0  0  0  1  1  1  1  1 1  1  1  1  1  1  0  0  0  0  0  1  1  1  1  1 1  1  1  1  1  1  0  0  0  0  0  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 Función : BW = imextendedmin(I,H,CONN) Aplicación : I22 = imextendedmin(I2,77)
Operaciones en escala de grises (X) Suprimir región máxima Reduce a la intensidad mínima determinado umbral Intensidad = [ I_min ;  I_max ] Región máxima:  [ I_max - nmin ;  I_max ] Ejemplo: nmin = 105  ==  [150; 255]=150 I2 = 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  128  128  128  128  128  51  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  150  192  192  150  150  128  128  128  51  51 51  51  51  128  128  128  150  192  255  192  150  128  128  128  51  51 51  51  51  128  128  128  150  192  192  192  150  128  128  128  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  51  128  128  128  128  128  128  51  51  51  51  51 51  51  51  51  51  51  51  128  128  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51
Operaciones en escala de grises (XI) Suprimir región máxima I22 = 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  128  128  128  128  128  51  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  128  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  128  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  128  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  51  128  128  128  128  128  128  51  51  51  51  51 51  51  51  51  51  51  51  128  128  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 Función : I2 = imhmax(I,H,CONN) Aplicación : I22=imhmax(I2, 105) ¡Altera la imagen original!
Operaciones en escala  de grises (XII) Suprimir región mínima Reduce a la intensidad mínima determinado umbral Intensidad = [ I_min ;  I_max ] Región máxima:  [ I_min ;  I_min+nmax ] Ejemplo: nmin = 77  ==  [51; 128]=128 I2 = 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  128  128  128  128  128  51  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  150  192  192  150  150  128  128  128  51  51 51  51  51  128  128  128  150  192  255  192  150  128  128  128  51  51 51  51  51  128  128  128  150  192  192  192  150  128  128  128  51  51 51  51  51  128  128  128  150  150  150  150  150  128  128  51  51  51 51  51  51  128  128  128  128  128  128  128  128  128  128  51  51  51 51  51  51  51  128  128  128  128  128  128  128  128  51  51  51  51 51  51  51  51  51  128  128  128  128  128  128  51  51  51  51  51 51  51  51  51  51  51  51  128  128  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51 51  51  51  51  51  51  51  51  51  51  51  51  51  51  51  51
Operaciones en escala  de grises (XIII) Suprimir región mínima I22 = 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 128  128  128  128  128  128  150  150  150  150  150  128  128  128  128  128 128  128  128  128  128  128  150  192  192  150  150  128  128  128  128  128 128  128  128  128  128  128  150  192  255  192  150  128  128  128  128  128 128  128  128  128  128  128  150  192  192  192  150  128  128  128  128  128 128  128  128  128  128  128  150  150  150  150  150  128  128  128  128  128 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 128  128  128  128  128  128  128  128  128  128  128  128  128  128  128  128 Función : I2 = imhmin(I,H,CONN) Aplicación : I22=imhmin(I2, 77)
Operaciones en escala  de grises (XIV) >> max_val=max(max(II(:,:))) 254 >> min_val=min(min(II(:,:))) 0 >> III=imhmax(II, 127); >> max_val=max(max(III(:,:))) 127
Operaciones en escala  de grises (XV) >> max_val=max(max(II(:,:))) 254 >> min_val=min(min(II(:,:))) 0 >> IV=imhmin(II, 128);  >> min_val=min(min(IV(:,:))) 128

Más contenido relacionado

PDF
56 guía ejercitación-
PPT
Segmentación de imagenes
PDF
Algoritmo de Floyd-Warshall
PPT
PDF
Solucionario teoria-electromagnetica-hayt-2001
PDF
CIRCUITOS DIGITALES: CI Ejercicios Simplificación por Álgebra Booleana y/o Ma...
PPTX
Mantenimiento preventivo y predictivo de un equipo de computo
DOCX
Modelo de casos de uso 2ª versión(2)
56 guía ejercitación-
Segmentación de imagenes
Algoritmo de Floyd-Warshall
Solucionario teoria-electromagnetica-hayt-2001
CIRCUITOS DIGITALES: CI Ejercicios Simplificación por Álgebra Booleana y/o Ma...
Mantenimiento preventivo y predictivo de un equipo de computo
Modelo de casos de uso 2ª versión(2)

La actualidad más candente (16)

PPTX
Algoritmo 18 uso del segun
PDF
Algoritmo de ordenamiento: Heap Sort
PDF
Convolucion Tiempo Discreto
PDF
Pré-processamento, Registro e Fusão de Bandas - Prática no ENVI
PPT
Conceptos Basicos Uml
PDF
Analisis y Diseño de Sistemas - Kendal & Kendal - Tercera Edición
PDF
Utp va_s9 filtrado de imagenes
PDF
Arquitectura Empresarial - Proyecto Integrador
XLS
Empresas Certificadas ISO en MéXico 2009
PDF
Programación Orientada a Objetos en JAVA
PPTX
Modelos de datos
PPTX
Tablas Hash
PPT
Splines
PPT
modelo relacional
PDF
Reporte metodos de busqueda y ordenamiento
Algoritmo 18 uso del segun
Algoritmo de ordenamiento: Heap Sort
Convolucion Tiempo Discreto
Pré-processamento, Registro e Fusão de Bandas - Prática no ENVI
Conceptos Basicos Uml
Analisis y Diseño de Sistemas - Kendal & Kendal - Tercera Edición
Utp va_s9 filtrado de imagenes
Arquitectura Empresarial - Proyecto Integrador
Empresas Certificadas ISO en MéXico 2009
Programación Orientada a Objetos en JAVA
Modelos de datos
Tablas Hash
Splines
modelo relacional
Reporte metodos de busqueda y ordenamiento
Publicidad

Similar a Imagen Morfologicas (20)

PPT
Morfología de las imágenes Matlab
PPT
Operaciones Morfologicas
PDF
Utp 2015-2_pdi_lab2
PDF
Utp pdi_2014-2 lab2
PDF
Utp 2015-2_pdi_lab2
PPT
Vision Artificial
PDF
Utp pd_iy_va_sap6 diltacion y erosión binaria
PDF
Utp pd_iy_va_sap6 operaciones morfologicas i
PDF
Utp pd_iy_va_sap6 operaciones morfologicas i
PPTX
Morfologia.pptxkjgiugiugfjlkgkghfjjkhiyoyfiu
PDF
Utp pdi_2014-2 lab2
PDF
tema5-1 transformaciones morfologicas.pdf
PDF
Morfologia_Segmentacion_en_Procesamiento.pdf
PDF
Utp pdi_2015-2_ea6 operaciones morfologicas i
PDF
Utp pd_iy_va_sap6y7 diltacion y erosión binaria - apertura y clausura
PPT
Imagen e histograma
DOCX
L2 s2
PDF
Operaciones morfológicas en imágenes binarias parte 1
PDF
PDF
23371 procesamiento-de-imagenes-con-matlab
Morfología de las imágenes Matlab
Operaciones Morfologicas
Utp 2015-2_pdi_lab2
Utp pdi_2014-2 lab2
Utp 2015-2_pdi_lab2
Vision Artificial
Utp pd_iy_va_sap6 diltacion y erosión binaria
Utp pd_iy_va_sap6 operaciones morfologicas i
Utp pd_iy_va_sap6 operaciones morfologicas i
Morfologia.pptxkjgiugiugfjlkgkghfjjkhiyoyfiu
Utp pdi_2014-2 lab2
tema5-1 transformaciones morfologicas.pdf
Morfologia_Segmentacion_en_Procesamiento.pdf
Utp pdi_2015-2_ea6 operaciones morfologicas i
Utp pd_iy_va_sap6y7 diltacion y erosión binaria - apertura y clausura
Imagen e histograma
L2 s2
Operaciones morfológicas en imágenes binarias parte 1
23371 procesamiento-de-imagenes-con-matlab
Publicidad

Más de Omar Sanchez (20)

PDF
Assembler4
PDF
Assembly programming II
PDF
Assembly programming
PDF
Assembler Programming
PDF
Functions for Nano 5 Card
PDF
Ejemplos de modelos basados en adaptacion parametrica
PDF
Sistemas numericos
PDF
Ensamblador
PDF
Nano5 features
PDF
Referencias MATLAB
PPT
Control Modelo de Referencia y Linealizacion po Realimentacion
PPTX
Fundposori
PPTX
Funciones de Lyapunov basado en Krasovskii
PPT
Sensores de robots
PPT
Vehiculos no tripulados
PPTX
Algunos aspectos de estabilidad
PPT
Control basado en modelo
PPT
Grupos próximos
PPT
Redes Neuronales
PPT
Algunas consideraciones
Assembler4
Assembly programming II
Assembly programming
Assembler Programming
Functions for Nano 5 Card
Ejemplos de modelos basados en adaptacion parametrica
Sistemas numericos
Ensamblador
Nano5 features
Referencias MATLAB
Control Modelo de Referencia y Linealizacion po Realimentacion
Fundposori
Funciones de Lyapunov basado en Krasovskii
Sensores de robots
Vehiculos no tripulados
Algunos aspectos de estabilidad
Control basado en modelo
Grupos próximos
Redes Neuronales
Algunas consideraciones

Último (20)

PDF
CV Carlos Lira Zalaquett_Agosto 2025 - Asesor Técnico Empresarial / Facilitador
PDF
DESARROLLO E IMPACTO DE LA INNOVACION.pdf
PDF
UP digital strategy v 2.2.pdf Marketing avanzado
PPTX
EXPO ADMINISTRACION ESTRATEGICA HISTORIA Y EVOLUCIÓN DE LA ADMINISTRACIÓN
PPTX
Innovación en el Emprendimiento_Clase.pptx
PPTX
Tema 3 La Función Dirección.fundamental pptx
PPTX
ADMINISTRACION ESTRATEGICA planeación y estrategia
PDF
Copia de PRESENTACION POST-BUROCRACIA_20250727_111400_0000.pdf
PPTX
Algunos aspectos fundamentales del Derecho Corporativo
PPT
Administración Financiera diapositivas.ppt
PDF
Presentación_rendición_de_cuentas_2020_26-FEB-2021.pdf
PPT
Teoria General de Sistemas empresariales
PPTX
1748538606_68389hhhhhhhhhhh4ee56ae5.pptx
PDF
Informe investigacion de accidente en al
PPTX
MAESTRIA TRABAJO GRUPAL N° 7.1 POLITICAS PUBLICAS.pptx
PPTX
ECONOMIA PLURAL para el entendimiento empresarial
PPTX
CREACION DE MARCA EMPRESAS CONTEXTO EMPRESARIAL
PPTX
ETAPAS DE LA AUDITORIA PERUUUUUUUU.pptx
PDF
Estrategias de orientación en facturación electrónica para grandes contribuye...
PDF
Indicadores Clave de Desempeño (KPI) para transporte
CV Carlos Lira Zalaquett_Agosto 2025 - Asesor Técnico Empresarial / Facilitador
DESARROLLO E IMPACTO DE LA INNOVACION.pdf
UP digital strategy v 2.2.pdf Marketing avanzado
EXPO ADMINISTRACION ESTRATEGICA HISTORIA Y EVOLUCIÓN DE LA ADMINISTRACIÓN
Innovación en el Emprendimiento_Clase.pptx
Tema 3 La Función Dirección.fundamental pptx
ADMINISTRACION ESTRATEGICA planeación y estrategia
Copia de PRESENTACION POST-BUROCRACIA_20250727_111400_0000.pdf
Algunos aspectos fundamentales del Derecho Corporativo
Administración Financiera diapositivas.ppt
Presentación_rendición_de_cuentas_2020_26-FEB-2021.pdf
Teoria General de Sistemas empresariales
1748538606_68389hhhhhhhhhhh4ee56ae5.pptx
Informe investigacion de accidente en al
MAESTRIA TRABAJO GRUPAL N° 7.1 POLITICAS PUBLICAS.pptx
ECONOMIA PLURAL para el entendimiento empresarial
CREACION DE MARCA EMPRESAS CONTEXTO EMPRESARIAL
ETAPAS DE LA AUDITORIA PERUUUUUUUU.pptx
Estrategias de orientación en facturación electrónica para grandes contribuye...
Indicadores Clave de Desempeño (KPI) para transporte

Imagen Morfologicas

  • 2. Operaciones morfológicas Morfología: Rama de la biología que trata de la forma y estructura de animales y plantas Morfología en imágenes : Herramientas y métodos utilizados para extraer componentes de la misma, útiles en la descripción y representación de formas (contornos, esqueletos, etc….)
  • 3. Operaciones morfológicas (II) El valor de cada píxel en la imagen de salida depende del valor de ese píxel en la imagen de entrada y su relación con la vecindad Elemento estructural: Define el tamaño y la forma de la vecindad en la que se aplicará la operación morfológica 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
  • 4. Dilatación Dilatación: Se adiciona píxeles al contorno de objetos presentes en la imagen Píxel de salida: Máximo de los píxeles presentes en la vecindad definida por el elemento estructural Imagen de entrada Elemento estructural Imagen de salida 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0
  • 5. Dilatación (II) Pasos para aplicar la dilatación 1.- Seleccionar el píxel de la imagen original a tratar 2.- Buscar el mayor de los píxeles de la vecindad, incluido el central, definidos por la forma y tamaño del elemento estructural 3.- Sustituir el valor del píxel por el máximo valor   Los anteriores pasos se ejecutan para todos los píxeles de la imagen
  • 6. Dilatación: Escala de grises % Ejemplo de dilatación % Imagen de entrada I=[0 0 0 0 0 0 0; 0 0 0 0 0 0 0; 0 0 15 27 8 0 0; 0 0 100 95 1 0 0; 0 0 125 30 2 0 0; 0 0 0 0 0 0 0; 0 0 0 0 0 0 0]; imshow(imresize(I,[520,520])); % Se define el elemento estructural Ele=strel('square',3); % Se aplica dilatación I1=imdilate(I, Ele); figure; imshow(imresize(I1,[520,520])); 15 27 8 100 95 1 125 30 2 1 1 1 1 1 1 1 1 1 15 27 8 100 125 1 125 30 2
  • 7. Dilatación: Escala de grises(II) >> I1 0 0 0 0 0 0 0 0 15 27 27 27 8 0 0 100 100 100 95 8 0 0 125 125 125 95 8 0 0 125 125 125 95 2 0 0 125 125 125 30 2 0 0 0 0 0 0 0 0 % Ejemplo de dilatación % Imagen de entrada I=[0 0 0 0 0 0 0; 0 0 0 0 0 0 0; 0 0 15 27 8 0 0; 0 0 100 95 1 0 0; 0 0 125 30 2 0 0; 0 0 0 0 0 0 0; 0 0 0 0 0 0 0]; imshow(imresize(I,[520,520])); % Se define el elemento estructural Ele=strel('square',3); % Se aplica dilatación I1=imdilate(I, Ele); figure; imshow(imresize(I1,[520,520]));
  • 9. Erosión Erosión: En imágenes binarias, elimina píxeles del contorno de objetos presentes en la imagen Píxel de salida: Mínimo de los píxeles presentes en la vecindad definida por el elemento estructural Imagen de entrada Elemento estructural Imagen de salida 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0
  • 10. Erosión: Escala de grises Si en el ejemplo anterior del programa MATLAB se sustituye la función imdilate por imerode resulta: I=[0 0 0 0 0 0 0; 0 0 0 0 0 0 0; 0 0 15 27 8 0 0; 0 0 100 95 1 0 0; 0 0 125 30 2 0 0; 0 0 0 0 0 0 0; 0 0 0 0 0 0 0]; I1 =[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] Entrada Salida
  • 11. Erosión: Escala de grises (II)
  • 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
  • 14. Elemento Estructural (III) >> ee=strel('diamond', 3) 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 >> ee=strel('disk', 4) 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0
  • 15. Elemento Estructural (IV) >> a=[0 1 0 1; 0 0 0 0; 0 0 0 0; 1 0 1 0]; >> se=strel('arbitrary',a) 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 >> ee=strel('line', 7, 135) 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
  • 16. Elemento Estructural (V) >> ee=strel('octagon', 3) 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 >> ee=strel('rectangle', [4 3]) 1 1 1 1 1 1 1 1 1 1 1 1
  • 17. Recuperación de caracteres incompletos ee=strel('diamond', 1) Sal = imdilate(I,ee); Imagen: www.imageprocessingplace.com
  • 18. Referencias de aplicación de la dilatación ee=strel('disk',18,0); I4=imdilate(I, ee);
  • 19. Referencias de aplicación de la dilatación (II) ee=strel('square',20); I5=imdilate(I, ee);
  • 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);
  • 21. Referencias de aplicación de la erosión ee=strel('square',5); I1=imerode(I, ee);
  • 22. Referencias de aplicación de la erosión (II) ee=strel('square',3); I2=imerode(I, ee);
  • 23. Referencias de aplicación de la erosión (III) ee=strel('disk',18,0); I3=imerode(I, ee);
  • 24. Ejemplo de aplicación de la erosión % Se define el elemento estructural >> eI1=strel('disk', 3) % Se aplica la erosión >> I1=imerode(II, eI1);
  • 25. Ejemplo de aplicación de la erosión (II)
  • 26. Dilatación vs erosión Dilatación Amplía bordes Une objetos próximos Une puntos blancos próximos Elimina detalles negros pequeños Erosión Reduce bordes Separa objetos próximos Elimina puntos blancos separados Amplía detalles negros pequeños
  • 27. Combinación de la dilatación y la erosión Apertura: Es la realización de una erosión seguida de una dilatación , utilizando el mismo elemento estructural en ambas operaciones Aplicaciones: Suaviza contornos de los objetos Elimina pequeñas protuberancias Rompe conexiones débiles ee=strel('diamond', 2); I1=imerode(I,ee); I2=imdilate(I1,ee); ee=strel('diamond', 2); I2=imopen(I,ee);
  • 28. Apertura imshow(I2) ee=strel('diamond', 4); Sal = imopen(I2,ee); Sal1=im2bw(Sal, 0.9);
  • 29. Apertura (II) Definir y aislar formas, para contar
  • 30. Combinación de la dilatación y la erosión (II) Cerradura: Es la realización de una dilatación seguida de una erosión , utilizando el mismo elemento estructural en ambas operaciones Aplicaciones: Rellenar detalles, conectando objetos que están próximos entre sí También suaviza los contornos Rellena vacíos en el contorno Elimina pequeños huecos ee=strel('diamond', 3); I1=imdilate(I,ee); I2=imerode(I1,ee); ee=strel('diamond', 3); I2=imclose(I,ee);
  • 31. Cerradura ee=strel('diamond', 3); I2=imclose(I,ee);
  • 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
  • 35. Comparación entre Apertura y Cerradura (III) Apertura Cerradura
  • 36. Ejemplos de Aplicación >> RGB = imread('pillsetc.png'); imshow(RGB); I = rgb2gray(RGB); threshold = graythresh(I); bw = im2bw(I,threshold); Definición de formas
  • 37. Ejemplos de Aplicación (II) bw = bwareaopen(bw,30); Se eliminan los objetos con menos de 30 píxeles 8 conectados
  • 38. Ejemplos de Aplicación (III) se = strel('disk',2); bw = imclose(bw,se); Llena espacio existente en el casquillo de la pluma
  • 39. Ejemplos de Aplicación (IV) Eliminar ruido manteniendo formas Erosionar Dilatar Dilatar Erosionar Apertura Cerradura
  • 40. Ejemplos de Aplicación (V) Definición de caracteres Programa del ejemplo
  • 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. Transformada de ganancia o pérdida (hit-or-miss) (II) Detectar esquinas Aplicaciones: Identificar configuración predefinida de píxeles Detectar píxeles aislados Puntos finales de líneas
  • 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);
  • 49. Obtención del perímetro (IV) >>III=im2bw(II,.7); >>IV=bwperim(III,8); Conectividad
  • 50. Llenar huecos Pasos del algoritmo : Imagen “semilla” (todos ceros excepto un 1) Repetir hasta % Define imagen semilla II=uint8(zeros(size(I))); [a, b]=size(I); a=uint8(a/2); b=uint8(b/2); II(a,b)=uint8(255); %Aplica el algoritmo ee=strel('square',3); while (I-II)~=0 II=((imdilate(II,ee))& (~I)) end Deben conocerse los puntos en los huecos a llenar
  • 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
  • 53. Conectividad (II) >> conndef(2,'min') 0 1 0 1 1 1 0 1 0 >> conndef(2,'max') 1 1 1 1 1 1 1 1 1 Función que define conectividad (dimensión 2) Vecindad 8 Conectividad definida por el programador >> vertical [0 1 0 0 1 0 0 1 0]
  • 54. Conectividad (III) Si conectividad 4: 2 objetos Si conectividad 8: 1 objeto >> conndef(2,'max') 1 1 1 1 1 1 1 1 1 ¿Cuántos objetos? A = 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 >> conndef(2,'min') 0 1 0 1 1 1 0 1 0
  • 55. Conectividad (IV) Determinar el número de objetos n conectados A = 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 bwlabel(I,n) X=bwlabel(A,4) % Cuatro conectados X = 0 0 0 0 0 0 0 0 1 1 0 2 2 0 0 1 1 0 2 2 0 0 0 0 2 2 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 X=bwlabel(A,8) % Ocho conectados X = 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 2 objetos 4 conectados 1 objeto 8 conectados
  • 56. Conectividad (V) Perímetro y objetos n conectados I = 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 III=bwperim(II,4); IV=bwperim(II,8); Misma salida
  • 57. Conectividad (VI) >> bwlabel(III,4) 1 1 1 1 0 0 0 0 1 0 1 0 2 2 0 0 1 0 1 0 2 2 0 0 1 0 1 0 0 0 3 0 1 0 1 0 0 0 3 0 1 0 1 0 0 0 3 0 1 0 1 0 0 3 3 0 1 1 1 0 0 0 0 4 >> bwlabel(III,8) 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 Perímetro 4 conectado: Combinación de 4 objetos 4 conectados Perímetro 8 conectado: Un objeto 8 conectados
  • 58. Función bwmorph BW2 = bwmorph(BW1,Operación,Número de veces que se repite) Operaciones descritas previamente 'dilate‘ 'erode‘ 'open‘ 'close‘ 'skel’ Otras operaciones ‘ bothat‘: Transformación bottom hat ‘ tophat‘: Transformación top hat ‘ clean’: Elimina píxeles aislados ‘ fill’: Rellena píxeles interiores aislados
  • 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
  • 61. Relleno de píxeles interiores aislados Aplicación: Clasificar formas Función bwmorph(‘fill’) I = 1 1 1 1 0 1 1 1 1 >> II=bwmorph(I,'fill'); II = 1 1 1 1 1 1 1 1 1 Función find : Devuelve puntero a valor I = 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 >> II=bwlabel(I,4) >> III=find(II==4) >> II(III)=6 II = 1 1 1 1 0 0 0 0 1 1 1 0 2 2 0 0 1 1 1 0 0 0 3 0 1 1 1 0 0 3 3 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 II = 1 1 1 1 0 0 0 0 1 1 1 0 2 2 0 0 1 1 1 0 0 0 3 0 1 1 1 0 0 3 3 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
  • 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
  • 63. Elimina píxeles interiores aislados Aplicación: Limpiar imagen Función bwmorph(‘clean’) >> B=bwmorph(A,’clean'); A = 0 0 0 0 1 0 0 0 0 B = 0 0 0 0 0 0 0 0 0
  • 64. Elimina píxeles interiores de una vecindad Aplicación: Obtener perímetro Función bwmorph(‘remove’) >> B=bwmorph(A,’remove'); A = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 B = 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1
  • 65. Adiciona píxeles a un perímetro hasta mantener una vecindad Aplicación: Agrandar objetos Función bwmorph('thicken’) >> B=bwmorph(A,’thicken‘ ); A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B = 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
  • 66. Ampliación de objeto Mantiene 8 conectados la frontera entre objetos
  • 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);
  • 68. Esqueleto de un conjunto (II) A = 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 B = 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 >> B=bwmorph(A,'skel',Inf) Reduce píxeles del contorno sin separar el objeto
  • 69. Esqueleto de un conjunto (III)
  • 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)
  • 71. Operaciones en escala de grises Se define como aquel conjunto de píxeles con conectividad n en una imagen que poseen un nivel de intensidad t , los píxeles que le rodean poseen un nivel de intensidad inferior a t Región máxima I2 = 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 150 192 192 150 150 128 128 128 51 51 51 51 51 128 128 128 150 192 255 192 150 128 128 128 51 51 51 51 51 128 128 128 150 192 192 192 150 128 128 128 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 51 51 51 128 128 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
  • 72. Operaciones en escala de grises (II) Función: BW = imregionalmax(I,CONN); Aplicación: Max=imregionalmax(I2) Región máxima Max = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 73. Operaciones en escala de grises (III) Se define como aquel conjunto de píxeles con conectividad n en una imagen que poseen un nivel de intensidad t , los píxeles que le rodean poseen un nivel de intensidad superior a t Región mínima I2 = 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 150 192 192 150 150 128 128 128 51 51 51 51 51 128 128 128 150 192 255 192 150 128 128 128 51 51 51 51 51 128 128 128 150 192 192 192 150 128 128 128 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 51 51 51 128 128 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
  • 74. Operaciones en escala de grises (IV) Región mínima Min =  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Función: BW = imregionalmin(I,CONN); Aplicación: Min=imregionalmin(I2)
  • 75. Operaciones en escala de grises (V) Región máxima con umbral Píxeles con valores de intensidad máximo en un intervalo Intensidad = [ I_min ; I_max ] Región máxima: [ I_max - nmin ; I_max ] Ejemplo: nmin = 63 == [192; 255] I2 = 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 150 192 192 150 150 128 128 128 51 51 51 51 51 128 128 128 150 192 255 192 150 128 128 128 51 51 51 51 51 128 128 128 150 192 192 192 150 128 128 128 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 51 51 51 128 128 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
  • 76. Operaciones en escala de grises (VI) Región máxima con umbral Función : BW = imextendedmax(I,H,CONN) Aplicación : I22 = imextendedmax(I2,63) I22 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Región mínima con umbral : BW = IMEXTENDEDMIN(I,H,CONN)
  • 77. Operaciones en escala de grises (VII) Región mínima con umbral Píxeles con valores de intensidad mínimo en un intervalo Intensidad = [ I_min ; I_max ] Región mínima: [ I_min ; I_min+nmax ] Ejemplo: nmax = 77 == [51; 128] I2 = 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 150 192 192 150 150 128 128 128 51 51 51 51 51 128 128 128 150 192 255 192 150 128 128 128 51 51 51 51 51 128 128 128 150 192 192 192 150 128 128 128 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 51 51 51 128 128 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
  • 78. Operaciones en escala de grises (VIII) Región mínima con umbral I22 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Función : BW = imextendedmin(I,H,CONN) Aplicación : I22 = imextendedmin(I2,77)
  • 79. Operaciones en escala de grises (X) Suprimir región máxima Reduce a la intensidad mínima determinado umbral Intensidad = [ I_min ; I_max ] Región máxima: [ I_max - nmin ; I_max ] Ejemplo: nmin = 105 == [150; 255]=150 I2 = 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 150 192 192 150 150 128 128 128 51 51 51 51 51 128 128 128 150 192 255 192 150 128 128 128 51 51 51 51 51 128 128 128 150 192 192 192 150 128 128 128 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 51 51 51 128 128 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
  • 80. Operaciones en escala de grises (XI) Suprimir región máxima I22 = 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 128 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 128 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 128 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 51 51 51 128 128 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 Función : I2 = imhmax(I,H,CONN) Aplicación : I22=imhmax(I2, 105) ¡Altera la imagen original!
  • 81. Operaciones en escala de grises (XII) Suprimir región mínima Reduce a la intensidad mínima determinado umbral Intensidad = [ I_min ; I_max ] Región máxima: [ I_min ; I_min+nmax ] Ejemplo: nmin = 77 == [51; 128]=128 I2 = 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 150 192 192 150 150 128 128 128 51 51 51 51 51 128 128 128 150 192 255 192 150 128 128 128 51 51 51 51 51 128 128 128 150 192 192 192 150 128 128 128 51 51 51 51 51 128 128 128 150 150 150 150 150 128 128 51 51 51 51 51 51 128 128 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 128 128 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 128 128 128 128 128 128 51 51 51 51 51 51 51 51 51 51 51 51 128 128 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
  • 82. Operaciones en escala de grises (XIII) Suprimir región mínima I22 = 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 150 150 150 150 150 128 128 128 128 128 128 128 128 128 128 128 150 192 192 150 150 128 128 128 128 128 128 128 128 128 128 128 150 192 255 192 150 128 128 128 128 128 128 128 128 128 128 128 150 192 192 192 150 128 128 128 128 128 128 128 128 128 128 128 150 150 150 150 150 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 Función : I2 = imhmin(I,H,CONN) Aplicación : I22=imhmin(I2, 77)
  • 83. Operaciones en escala de grises (XIV) >> max_val=max(max(II(:,:))) 254 >> min_val=min(min(II(:,:))) 0 >> III=imhmax(II, 127); >> max_val=max(max(III(:,:))) 127
  • 84. Operaciones en escala de grises (XV) >> max_val=max(max(II(:,:))) 254 >> min_val=min(min(II(:,:))) 0 >> IV=imhmin(II, 128); >> min_val=min(min(IV(:,:))) 128