procesamiento de imágenes médicas lección #6-7: algoritmos sobre imágenes noviembre, 2012
TRANSCRIPT
Procesamiento de Imágenes MédicasLecció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• PseudocolorProcesamiento 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
• 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
• El desplazamiento se puede realizar con imadd y imsubtract
Procesamiento de imágenes médicas
A = original B = shift(I, +50) A-B
Expansión
Procesamiento de imágenes médicas
• 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
• La expansión aumenta el contraste• En Matlab, la función imadjust
Expansión
Procesamiento de imágenes médicas
Contracción
Procesamiento de imágenes médicas
• 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
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)
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 (general-mente cordilleras/mon-tañas) que divide las áreas drenadas por dife-rentes sistemas fluvia-les
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