Fundamentos del procesamiento de imágenes médicas
BE3027 - Robótica Médica
¿Por qué?
Antes de imágenes médicas, establezcamos fundamentos del procesamiento de imágenes normales
I = imread('filename.png')
imshow(I) % imageViewer(I)
I = imread('filename.png')
imshow(I) % imageViewer(I)
pixel = picture element
pixel = picture element
¿Qué valores toman los pixeles?
depende del proceso de formación de imagen y del espacio de color
Formación de imágenes
para imágenes convencionales \(\to\) intensidad de luz
Escala de grises
gray = rgb2gray(I)
Espacio de color RGB
Otros espacios de color
HSV = rgb2hsv(RGB)
Otros espacios de color
L*a*b* (CIELAB)
lab = rgb2lab(RGB)
YCbCr
YCBCR = rgb2ycbcr(RGB)
CMYK
¿Qué es lo complicado de lidiar con imágenes?
exceso de información semántica
there's more than meets the eye
tendremos que conformarnos con el uso de features (características)
tendremos que conformarnos con el uso de features (características)
bordes
tendremos que conformarnos con el uso de features (características)
bordes
funciones matemáticas
tendremos que conformarnos con el uso de features (características)
bordes
puntos característicos
funciones matemáticas
tendremos que conformarnos con el uso de features (características)
bordes
puntos característicos
funciones matemáticas
segmentos
tendremos que conformarnos con el uso de features (características)
bordes
puntos característicos
funciones matemáticas
segmentos
entre otras muchas más...
los cambios de intensidad como herramienta para detección de features
Bordes
Histograma
imhist(I)
Algunas operaciones básicas de procesamiento de imágenes
Ecualización de histograma
J = histeq(I)
Thresholding
una imagen a color o en escala de grises
una imagen binaria (blanco y negro)
condición | if
Filtrado LTI
J = imfilter(I, G)
Filtrado LTI
J = imfilter(I, G)
kernel
Smoothing | Suavizado
J = imgaussfilt(I, sigma)
box filter
Gaussian blur
Aplicaciones de suavizado
de-noising
remoción de detalles
\(\Rightarrow\) suavizado \(\equiv\) filtrado pasa-bajas
Sharpening | Afilado
operación contraria al suavizado
\(\equiv\) filtrado pasa-altas \(\approx\) resaltado de detalles
sharpen filter (ejemplo)
puede emplearse suavizado para obtener afilado mediante unsharp masking
factor de escalamiento
versión suavizada de \(I\)
residual:
De detalles a bordes
Kernels para calcular derivadas
kernels de Sobel
= derivada de segundo orden + suavizado
Kernels para calcular derivadas
kernels de Sobel
= derivada de segundo orden + suavizado
se emplean como base para detectores de bordes más sofisticados, como el Canny edge detector
BW = edge(I, method) % 'Canny' en el ejemplo
Puntos característicos
points = detectHarrisFeatures(I)
detector de esquinas de Harris–Stephens
FAST features
points = detectSIFTFeatures(I)
points = detectFASTFeatures(I)
SIFT features
ORB features
points = detectSURFFeatures(I)
points = detectORBFeatures(I)
SURF features
Transformada de Hough
[H,theta,rho] = hough(BW)
centers = imfindcircles(A,radius)
Análisis de regiones
stats = regionprops(BW, properties)
Segmentación
imageSegmenter(I)
BE3027 - Lecture 10 (2024)
By Miguel Enrique Zea Arenales
BE3027 - Lecture 10 (2024)
- 72