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) = n k = 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 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 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
Expansión Procesamiento de imágenes médicas
Contracción 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 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 R 1, R 2, R 3, R 4 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