2014-10-06 4 views
1

У меня есть скелетонированное двоичное изображение. Изображение содержит кривые линии. Я хочу, чтобы можно было найти длину строки (количество пикселей) между любыми двумя точками (на линии, конечно). Как это сделать (в Matlab)?Найти длину изогнутой линии в Matlab

+1

Я думаю, вы можете сканировать изображение слева направо, сверху вниз, начиная с самой левой точки, до тех пор, пока не достигнете самой правой точки и не подсчитайте каждый пиксель линии, к которой вы пересекаете (которая имеет двоичное значение '1'). Извините, я не могу предоставить код MATLAB для этого на данный момент ... – smichak

ответ

2

Вот один подход для простых ситуаций (там, где нет петель и т.д., и ваша линия только пиксель шириной)

  1. Начало кузницы кадров, определяют как currentpoint и маркируют как посещенные
  2. Go к нераспределенной соседней точке текущей точки
  3. Увеличьте счет на 1, отметьте как посетил, определите эту точку как текущую точку
  4. Если вы достигнете конечной точки, остановите. Если у вас все еще есть единственные соседи, переходите 2. Если у вас заканчиваются невидимые соседи, сбросьте счет до нуля и попробуйте пройти от начальной точки (чтобы исследовать противоположное направление).

Конечно, это может работать на любом языке программирования. Попробуйте реализовать это в MATLAB, и если вы застряли, вы можете рассмотреть вопрос о более конкретном вопросе.

Смежные вопросы