Transcript watershed

Procesamiento de
Imágenes Médicas
Lección #6-7: Algoritmos sobre imágenes
Noviembre, 2012
Agenda
•
•
•
•
•
Procesamiento del Histograma
Análisis
Ecualización
Expansión/Contracción
Segmentación de imágenes
• Thresholding
• Region Growing
• Watershed
• Percepción del Color
• Pseudocolor
Procesamiento de imágenes médicas
PROCESAMIENTO DEL
HISTOGRAMA
Trabajar con el histograma
Procesamiento de imágenes médicas
Histograma
• En una imagen en gris, es la representación
gráfica de la frecuencia de ocurrencia de cada
nivel de gris en una imagen
• Arreglo unidimensional de valores h
h(k) = nk = card{(x,y) | f(x,y) = k}
• k = 0, 1, …, L-1 y L es el nro. de niveles de gris
• card denota la cardinalidad de un conjunto
• En Matlab, la función imhist
Procesamiento de imágenes médicas
Histograma
• Un histograma normalizado se define como:
𝑛𝑘
𝑝(𝑟𝑘 )
𝑛
• n es el número total de píxeles
• p(rk) es la probabilidad del k-ésimo nivel de gris
• Histograma de una imagen de 8-bits:
• Crear un arreglo de 256 posiciones
• Inicializarlo en cero
• Leer c/intensidad de píxel y sumar 1 en cada posición
Procesamiento de imágenes médicas
Analizando un Histograma
Procesamiento de imágenes médicas
Analizando un Histograma
Procesamiento de imágenes médicas
Ecualización
• Cambiar la distribución de los valores de grises
para obtener una forma más “distribuida”
• Función de distribución acumulativa
𝑘
𝑠𝑘 =
𝑗=0
𝑛𝑗
=
𝑛
𝑘
𝑝(𝑟𝑗 )
𝑗=0
• sk es el nuevo nivel de grises para todos los
píxeles rk
• En Matlab, empleando la función histeq
Procesamiento de imágenes médicas
Procesamiento de imágenes médicas
Ecualización
• Global (histeq) y local (adapthisteq)
Procesamiento de imágenes médicas
Ecualización
• Global (histeq) y local (adapthisteq)
Procesamiento de imágenes médicas
Desplazamiento
A = original
B = shift(I, +50)
A-B
• El desplazamiento se puede realizar con imadd y
imsubtract
Procesamiento de imágenes médicas
Expansión
• También conocida como input cropping
• Expande el histograma en el rango [rmin, rmax] del
rango completo [0, L-1]
• Cada valor r, es mapeado a un valor s como
𝑟 − 𝑟𝑚𝑖𝑛
𝑠=
× (𝐿 − 1)
𝑟𝑚𝑎𝑥 − 𝑟𝑚𝑖𝑛
• La expansión aumenta el contraste
• En Matlab, la función imadjust
Procesamiento de imágenes médicas
Expansión
Procesamiento de imágenes médicas
Contracción
• También conocida como output cropping
• Contrae el histograma en el rango [rmin, rmax] a un
rango menor [smin, smax]
• Cada valor r, es mapeado a un valor s como
𝑠𝑚𝑎𝑥 − 𝑠𝑚𝑖𝑛
𝑠=
𝑟𝑚𝑎𝑥 − 𝑟𝑚𝑖𝑛
𝑟 − 𝑟𝑚𝑖𝑛 + 𝑠𝑚𝑖𝑛
• La contracción reduce el contraste
• En Matlab, la función imadjust
Procesamiento de imágenes médicas
SEGMENTACIÓN DE
IMÁGENES
Extraer regiones de interés
Procesamiento de imágenes médicas
Segmentación
• Proceso de particionar una imagen en un conjunto
de regiones disjuntas cuya unión forma la imagen
completa
• Estas regiones, generalmente corresponden a
objetos, fondo, etc.
• La mayoría de los algoritmos de segmentación se
basan en dos principios:
• Discontinuidad
• Similaridad
Procesamiento de imágenes médicas
Segmentación
• Proceso complejo debido a:
•
•
•
•
Presencia de iluminación discontinua
Sombras
Superposición de objetos
Poco contraste
Procesamiento de imágenes médicas
Segmentación
• Muchas técnicas ad-hoc
• Las técnicas pueden variar de acuerdo a:
• Tipo de imagen (binaria, gris, color)
• Selección de la técnica matemática (morfología,
estadística, basada en grafos, etc.)
• Tipo de característica (intensidad, color, textura,
movimiento, etc.)
• Enfoque algoritmico (top-down, bottom-up, grafos)
• Una posible clasificación es: métodos basados en
intensidad, basados en regiones y otros métodos.
Procesamiento de imágenes médicas
Basados en intensidad
• Conceptualmente, es un enfoque sencillo
• Emplea estadísticas de los píxeles (usando un
histograma) para determinar cuáles píxeles
pertenecen al background o foreground
• Image thresholding: convertir una imagen de
varios niveles de intensidad a una con menos
(usualmente 2)
1 𝑠𝑖 𝑓 𝑥, 𝑦 > 𝑇
𝑔 𝑥, 𝑦 =
0 𝑒𝑛 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟𝑎𝑟𝑖𝑜
Procesamiento de imágenes médicas
Thresholding
• IPT tiene una función para convertir una imagen
en grises a binaria: im2bw
• La función recibe como parámetro el threshold T
• El algoritmo de una técnica básica de thresholding
es:
1. Inspeccionar el histograma (imhist)
2. Seleccionar el valor apropiado de T
3. Aplicar el valor seleccionado (im2bw)
4. Si el resultado es satisfactorio, salvar la imagen.
Sino, repetir los pasos 2-4
Procesamiento de imágenes médicas
Thresholding
• Probemos el siguiente algoritmo:
Ioriginal = imread('coins.jpg');
I = rgb2gray(Ioriginal);
imshow(I);
Id = im2double(I); % I is a uint8 grayscale image
T = 0.5*(min(Id(:)) + max(Id(:)));
deltaT = 0.01; % convergence criterion
done = false;
while ~done
g = Id >= T;
Tnext = 0.5*(mean(Id(g)) + mean(Id(~g)));
done = abs(T - Tnext) < deltaT;
T = Tnext;
end
imshow(im2bw(I, T));
%what means T? :-)
Procesamiento de imágenes médicas
Thresholding
• Ejercicio: empleando un thresholding “manual”
compararlo con el algoritmo anterior y empleando
la función graythresh de Matlab
Procesamiento de imágenes médicas
Basados en regiones
• Concepto de conectividad. Partición de I en n
regiones R1, R2, R3, R4
• Region growing
• Comenzar en p e ir “creciendo” alrededor de ésta
mientras se cumpla el criterio de homogeneidad
Procesamiento de imágenes médicas
Region Growing
• Requiere de una(s) semilla(s)
• Se necesita definir:
• El criterio de similitud
• ¿Cómo se selecciona la semilla?
• El criterio de parada
Procesamiento de imágenes médicas
promedio de píxeles
Region Growing
Procesamiento de imágenes médicas
Watershed
• Técnica morfológica que su nombre deriva de la
geografía
• Watershed significa la
línea divisora (generalmente cordilleras/montañas) que divide las
áreas drenadas por diferentes sistemas fluviales
Procesamiento de imágenes médicas
Watershed
• IPT tiene la función watershed
• Requiere una imagen de entrada y el criterio de
conectividad (4 u 8 vecinos)
• Adicionalmente, en Matlab existe una función
para la distancia que se usa en conjunto con
watershed
• Esta función calcula la distancia de un píxel al
píxel más cercano de éste distinto de 0. La
función se llama bwdist y contiene distancia
Euclideana y de Ciudad (Manhattan)
Procesamiento de imágenes médicas
Percepción del Color
• Combinación de las propiedades de la luz + el
aspecto psicológico del sistema de visión humano
• Los modelos de color es una especificación de un
sistema de coordenadas y un subespacio, donde
cada color es representado como un punto
• Pueden variar de acuerdo al área de trabajo:
•
•
•
•
Fotografía
Física
Materiales
Algoritmos
Procesamiento de imágenes médicas
Modelo RGB
• Valores desde 0x00 hasta 0xFF por canal
Procesamiento de imágenes médicas
Modelo CMY y CMYK
• Emplea los 3 colores primarios (pigmentos):
• Cyan
• Magenta
• Amarillo
• Empleado por las impresoras
• El cuarto color: blacK (CMYK)
• En Matlab, la conversión entre RGB y CMYK se
realizar con la función imcomplement
Procesamiento de imágenes médicas
Modelo HSV
• Hue, describe el tipo de color (tono)
• Saturation, medida de la “pureza” (diluido en
blanco)
• Value, intensidad de la luz reflejada desde los
objetos
Procesamiento de imágenes médicas
Modelo HSV
• Capacidad de distinguir colores distintos por un
humano
• Algoritmos basados en HSV
• Problemas con los valores alrededor del rojo y
conversión a RGB (costoso)
• En Matlab: rgb2hsv y hsv2rgb
Procesamiento de imágenes médicas
Otros Modelos
• YIQ (NTSC), empleado para la televisión
analógica (América)
• Y: luminancia, I: dos señales de color, Q:
saturación
• En Matlab, rgb2ntsc y ntsc2rgb
• YCbCr, usado para video digital
• Y: luminancia, Cb: diferencia en azul, Cr:
diferencia en rojo y valor referencia
• En Matlab, rgb2ycbcr y ycbcr2rgb
Procesamiento de imágenes médicas
PseudoColor
• Realzar una imagen monocroma para propósitos
visuales
• Niveles de grises “opacan” regiones de interés
(ejemplo: presencia de un tumor)
• El ojo humano es capaz de distinguir miles de
intensidades de color, y solo 100 niveles de grises
• Solución típica: usar una LUT (lookup table) y
contrastar colores consecutivos
• Diversas técnicas de pseudocolor
Procesamiento de imágenes médicas
Intensity Slicing
• En Matlab, la función grayslice
Procesamiento de imágenes médicas
Intensity Slicing
Procesamiento de imágenes médicas
Otras técnicas
• Niveles de grises a transformaciones de color
• Pseudocolor en el dominio de la frecuencia
• Pseudolor después de un proceso de segmentación
a cada región
Procesamiento de imágenes médicas