2016-05-09 2 views
0

У меня есть полилиния, заданная как 2 вектора X, Y координат, оба вектора одинаковой длины и X (i) соответствуют Y (i).как преобразовать полилинию в bitmap в matlab

Мне нужен простой способ создания булевой матрицы, которая имеет 1, где проходит полилиния, и 0, где это не так.

есть ли хороший способ сделать это?

Я думал о poly2mask, но доктор говорит, что он закрывает полигон, который не то, что я ищу

Благодарности

+1

Являются ли ваши координаты '(X, Y)' равномерно распределенными? Можете ли вы добавить [mcve] – BillBokeey

+0

Координаты распределены неравномерно, но у меня есть функция, которая может интерполировать равномерно между ними, если это необходимо. Однако я не вижу правильного способа сделать это, потому что мне нужно получить информацию в пикселях. Также см. Править – Gulzar

ответ

0

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

Вы также можете использовать line, чтобы нарисовать линии.

+0

Я не понимаю большую часть того, что вы написали. По достоинству оцените код для уточнения – Gulzar

+0

@ Gulzar, так что любая работа, которую вы сделали до сих пор? пример данных и ожидаемого результата? – Yvon