Download watershed
Transcript
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