Imagen Morfologicas
-
Upload
omar-sanchez -
Category
Business
-
view
25.917 -
download
1
Transcript of Imagen Morfologicas
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….)Esqueleto
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
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
Imagen de entrada Elemento estructural Imagen de salida
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 grises15 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
% Ejemplo de dilatación% Imagen de entradaI=[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 estructuralEle=strel('square',3);% Se aplica dilataciónI1=imdilate(I, Ele);figure;imshow(imresize(I1,[520,520]));
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 entradaI=[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 estructuralEle=strel('square',3);% Se aplica dilataciónI1=imdilate(I, Ele);figure;imshow(imresize(I1,[520,520]));
Dilatación: Escala de grises(III)
Figura original >> I2=imdilate(I1,ee);
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
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
Imagen de entrada Elemento estructural Imagen de salida
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)
Figura original>> ee=strel('square', 24);
>> I2=imerode(I1,ee);
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 estructuralCentro=(tamaño+1)/2
Para el elemento estructural cuadrado de tamaño 3x3 el centro será:
Centro=(3+1x3+1)/2=2x2
1 1 1
1 1 1
1 1 1(3x3)
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
I
ee=strel('disk',18,0);I4=imdilate(I, ee);
I4
Referencias de aplicación de la dilatación (II)
I
ee=strel('square',20);I5=imdilate(I, ee);
I5
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
I I1
ee=strel('square',5);I1=imerode(I, ee);
Referencias de aplicación de la erosión (II)
I
ee=strel('square',3);I2=imerode(I, ee);
I2
I3
Referencias de aplicación de la erosión (III)
I
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ónAmplía bordesUne objetos próximosUne puntos blancos próximosElimina detalles negros pequeños
ErosiónReduce bordesSepara objetos próximosElimina puntos blancos separadosAmplí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);
I2 Sal
Sal1
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);
I I2
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)
Imagen original Opening Closening
Original Apertura Cerradura
Comparación entre Apertura y Cerradura (II)
Elemento estructural: >> ee=strel('square', 12)
Original Apertura Cerradura
Ope
ning
Clo
sing
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
ErosionarDilatarDilatarErosionar
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:
)()( 21 BerosiónABerosiónABA c
Imagen Complementode la imagen
Elemento Estructural 1
Elemento Estructural 2
Operación AND de la imagen, erosionada con un elementoestructural 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
)()( BerosiónAAAP >>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 1 kk XX
Ckk ABDilataciónXX 1
% Define imagen semillaII=uint8(zeros(size(I)));[a, b]=size(I); a=uint8(a/2); b=uint8(b/2);II(a,b)=uint8(255); %Aplica el algoritmoee=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ímetroBW2 = bwperim(BW1,conn)
ConectividadDepende 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 objetosSi 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 conectadosX = 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 imagenAplicació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 imagenAplicació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 aisladosAplicació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 aisladosAplicació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 vecindadAplicació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
Imagen original Aplicación remove
Adiciona píxeles a un perímetro hasta mantener una vecindadAplicació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
Imagen original Imagen engrosada
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)
Figura original Esqueleto
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 imagenb.- Erosionar para separar las posibles uniones entre númerosc.- Dilatar para recomponer números que tengas discontinuidadesd.- Calcular el esqueleto de cada componentee.- 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 umbralPí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 umbralFunció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 umbralPí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áximaReduce 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]=150I2 = 51 51 51 51 51 51 51 51 51 51 51 51 51 51 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