Matlab: получение нормалей точек контура двоичного изображения - PullRequest
2 голосов
/ 04 мая 2011

Контекст

У меня есть двоичное изображение силуэта, к которому я хочу добавить шум.Шум должен быть добавлен только к контуру силуэта.Я бы хотел, чтобы шум был вектором, который добавляется к каждой точке контура, причем длина вектора выбирается из гауссовского распределения со средним нулем и дисперсией x% от высоты силуэта.Направление вектора должно быть нормальным для данной точки контура.

Вопрос

В Matlab, учитывая двоичное изображение, как мне получить нормали дляточки контура?

1 Ответ

1 голос
/ 04 мая 2011

Используйте bwboundaries, чтобы получить контур (то есть последовательность точек, которые составляют контур). Поскольку у вас есть последовательность точек благодаря bwboundaries, теперь мы можем определить 3 точки A, B, C , где B находится между A и C , и мы хотим найти нормаль в B , которая определяется как:

N = [Ay - Cy;Cx - Ax]';
...