Imagen Morfologicas
Upcoming SlideShare
Loading in...5
×
 

Imagen Morfologicas

on

  • 26,734 views

 

Statistics

Views

Total Views
26,734
Slideshare-icon Views on SlideShare
23,229
Embed Views
3,505

Actions

Likes
3
Downloads
674
Comments
0

6 Embeds 3,505

http://omarsanchez.net 3398
http://www.slideshare.net 100
http://webcache.googleusercontent.com 3
http://translate.googleusercontent.com 2
http://74.125.45.132 1
http://static.slidesharecdn.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Imagen Morfologicas Imagen Morfologicas Presentation Transcript

    • Operaciones morfológicas
    • Operaciones morfológicas
      • Operación morfológica: Es aquella en la que 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: Adiciona píxeles (imágenes binarias) al entorno 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) Imagen: www.imageprocessingplace.com
    • Erosión
      • Erosión: Elimina píxeles (imágenes binarias) al entorno 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 Semejante a dilatación en escala de grises 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 Aplicación: Cuando se desea eliminar los pequeños objetos y mantener el tamaño en los grandes (eliminar ruído) ee=strel('diamond', 2); I1=imerode(I1,ee); I2=imdilate(I,ee); ee=strel('diamond', 2); I2=imopen(I,ee); Matlab
    • Apertura imshow(I2) ee=strel('diamond', 4); Sal = imopen(I2,ee); Sal1=im2bw(Sal, 0.9);
      • Suaviza el contorno de un objeto
      • Separa pequeños enlaces
    • Apertura (II) 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 Aplicación: Cuando se desea rellenar detalles y conectar objetos que están próximos entre sí ee=strel('diamond', 3); I1=imdilate(I,ee); I2=imerode(I1,ee); ee=strel('diamond', 3); I2=imclose(I,ee); Matlab
    • 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
    • Ejemplo de Aplicación >> RGB = imread('pillsetc.png'); imshow(RGB); I = rgb2gray(RGB); threshold = graythresh(I); bw = im2bw(I,threshold); Definición de formas
    • Ejemplo de Aplicación (II) bw = bwareaopen(bw,30); Se eliminan los objetos con menos de 30 píxeles
    • Ejemplo de Aplicación (III) se = strel('disk',2); bw = imclose(bw,se); Llena espacio existente en el casquillo de la pluma
    • 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
    • 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
    • Transformada de ganancia o pérdida (hit-or-miss) (III) >> II=im2bw(I); % 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; >> eI1=strel('square', 5);    % Para facilitar la visualización (ampliación) >> VIII=imdilate(VII,eI1);
    • Obtención del perímetro Sustracción a la imagen la erosión de la imagen % Programa Matlab % Elemento estructural >>ee = strel('diamond',3) >>bw1=imerode(bw, ee); >>bw2=bw-bw1;
    • Obtención del perímetro (II) El perímetro puede ser más delgado en función del elemento estructural que se utilice
    • Obtención del perímetro (III) Sustracción a la dilatación de la imagen la erosión de la propia imagen % Programa Matlab % dilatación I1=imdilate(I,ee); % erosión I2=imerode(I,ee); % sustracción I3=imsubtract(I1,I2);
    • Obtención del perímetro (IV)
    • Obtención del perímetro (V) % 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);
    • 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