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.

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 en la imagen. La función calcula la distancia entre cada píxel establecido en ( ) y el píxel distinto de cero más cercano para las imágenes binarias.bwdistoff0

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

Métricas de distancia

Métrica de distancia

Descripción

Ilustración

Euclidiana

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

Bloque de la ciudad

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

Tablero

La métrica de distancia del tablero de ajedrez mide la ruta entre los píxeles en función de una vecindad conectada a 8. Píxeles cuyos bordes o esquinas se tocan están separados por 1 unidad.

Cuasi-euclideo

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')