Преобразование расстояния двухуровневого изображения

Расстояние преобразовывает, обеспечивает метрику или меру разделения точек в изображении. Функция bwdist вычисляет расстояние между каждым пикселем, который установлен в off (0) и самый близкий ненулевой пиксель для двухуровневых изображений.

Функция bwdist поддерживает несколько метрик расстояния, перечисленных в следующей таблице.

Метрики расстояния

Метрика расстояния

Описание

Рисунок

Евклидов

Евклидово расстояние является расстоянием по прямой между двумя пикселями.

Городской квартал

Метрика расстояния городского квартала измеряет путь между пикселями на основе связанного с 4 окружения. Пиксели, ребра которых затрагивают, являются 1 модулем независимо; пиксели, по диагонали затрагивающие, являются 2 модулями независимо.

Шахматная доска

Метрика расстояния шахматной доски измеряет путь между пикселями на основе связанного с 8 окружения. Пиксели, ребра которых или угловое касание являются 1 модулем независимо.

Квазиевклидов

Квазиевклидова метрика измеряет общее Евклидово расстояние вдоль набора горизонтали, вертикальных, и диагональных линейных сегментов.

Этот пример создает двухуровневое изображение, содержащее два пересекающихся круговых объекта.

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

Чтобы вычислить преобразование расстояния дополнения двухуровневого изображения, используйте функцию bwdist. В изображении расстояния преобразовывают, отмечают, как центры двух круговых областей являются белыми.

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