2016-06-15 3 views
0

Мне нужна помощь, чтобы выяснить код матлаба для определения расстояния от известной точки до краев веб-страницы, представленной на этом рисунке. binary image of angiogenesis from a bead. Я знаю точную точку из предыдущего кода, но я прошу любую помощь в определении расстояния от этой точки до любых основных краев, видимых на изображении. Будут оценены любые идеи или материалы. Спасибо!Расстояние от известной точки до края веб-сайта

+0

вы могли бы просто использовать т он расставляет формулу 'dist = sqrt ((y2-y1)^2 + (x2-x1)^2); %%%%' Где '(x1, y1)' и '(x2, y2)' являются координатами двух пикселей – Altronicx

ответ

0

использовать краевую функцию MATLAB для обнаружения ребер на изображении и функцию bwdist для вычисления расстояния от краев. Изображение преобразования расстояния - это в основном карта, которая содержит на каждом пикселе расстояние от белых пикселей во входном изображении (в нашем случае это края изображения).

код

Вычислить расстояние преобразования карту

distMap = bwdist(edge(I)); 

Определить расстояние точки Р = (х, у) от краев I:

distFromP = distMap(y,x) 

One Раствор для линкера

Используя method suggested in this answer, то можно генерировать код одной строки для вычисления расстояния точки Р = (х, у) от краев I:

distFromP = subsref(bwdist(edges(I)),struct('type','()','subs',{{y,x}})); 

метод Задание расстояния

Кроме того, можно указать функцию расстояния, которое вы хотели бы использовать, путем передачи параметра метода (метод по умолчанию является евклидово), как можно видеть в следующих примерах:

D1 = bwdist(im,'euclidean'); %euclidian distance sqrt(|y1-y2|^2+|x1-x2|^2) 
D2 = bwdist(im,'cityblock'); %city block distance (|y1-y2|+|x1-x2|) 
D3 = bwdist(im,'chessboard'); %chessboard (max(|y1-y2|,|x1-x2|) 
D4 = bwdist(im,'quasi-euclidean'); %quasi-euclidean (for more information see MATLAB's documentation) 
Смежные вопросы