Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

La transformación de distancia de una imagen binaria

La transformación de distancia proporciona una métrica o medida de la separación de puntos de la imagen. La función calcula la distancia entre cada píxel que se establece en () y el píxel más cercano distinto de cero para las imágenes binarias.bwdistoff0

La función admite varias métricas de distancia, enumeradas en la tabla siguiente.bwdist

Las métricas de distancia

Distancia métrica

Descripción

Ilustración

Euclidiana

La distancia euclidiana es la distancia en línea recta entre dos píxeles.

City Block

La métrica de distancia de bloque de ciudad mide la ruta entre los píxeles basados en una vecindad de 4 conectados. Los píxeles cuyos bordes se tocan están separados por 1 unidad; píxeles que se tocan diagonalmente son 2 unidades separadas.

Tablero

La métrica de distancia del tablero de ajedrez mide la ruta entre los píxeles basados en una vecindad de 8 conectados. Los píxeles cuyos bordes o esquinas tocan están separados por 1 unidad.

Cuasi-euclidiana

La métrica cuasi-euclidiana mide la distancia euclidiana total a lo largo de un conjunto de segmentos de línea horizontales, verticales y diagonales.

En este ejemplo se crea una imagen binaria que contiene dos objetos circulares intersectantes.

center1 = -10;  center2 = -center1;  dist = sqrt(2*(2*center1)^2);  radius = dist/2 * 1.4;  lims = [floor(center1-1.2*radius) ceil(center2+1.2*radius)];  [x,y] = meshgrid(lims(1):lims(2));  bw1 = sqrt((x-center1).^2 + (y-center1).^2) <= radius;  bw2 = sqrt((x-center2).^2 + (y-center2).^2) <= radius;  bw = bw1 | bw2;  figure, imshow(bw), title('bw')

Para calcular la transformación de distancia del complemento de la imagen binaria, utilice la función.bwdist En la imagen de la transformación de distancia, observe cómo los centros de las dos áreas circulares son blancos.

D = bwdist(~bw);  figure, imshow(D,[]), title('Distance transform of ~bw')