Как преобразовать растровое изображение в коллекцию путей в WPF (в коде не XAML) - PullRequest
1 голос
/ 03 августа 2010

У меня есть сетка занятости, которая имеет 3 состояния - Занят, Свободен, Неизвестен. Сетка занятости - это простой двумерный массив состояний. Сетка представляет план этажа, где Занят = Стена, Свободен = Открытый этаж, Неизвестен = что находится за стеной или не нанесено на карту. Эта сетка имеет ширину 800x800, каждая ячейка представляет 5 см реального мира.

Я хочу взять это и сделать из него форму пути WPF. Затем я могу манипулировать на экране, разрешить пользователю добавлять стены (путем рисования линий) и в конечном итоге экспортировать в какую-либо форму стандарта CAD / SVG / и т. Д.

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

Я ищу идеи о том, как перевести эту сетку, или thebitmap, в чистые формы wpf. Линии, многоугольники, полилинии или пути - все это сделало бы меня очень счастливым, потому что, как только у меня появятся такие, я смогу сделать все, что угодно. Есть идеи?

1 Ответ

0 голосов
/ 03 августа 2010

Если ваши стены имеют только некоторые основные геометрические формы (линии, другие, такие как круги, становятся намного сложнее), вы можете использовать Преобразование Хафа или другое преобразование, в зависимости от того, как выглядят ваши изображения.Если я правильно понимаю, что ваши изображения имеют только три цвета, вам, возможно, не придется использовать какой-либо алгоритм обнаружения краев.

Редактировать: Если в состоянии «Занят» представлены только тонкие поверхности стен, это все, что вам нужно.Вы получите линии для своих стен (разграничивая свободные / неизвестные области)

...