поиск фигур в файле изображения BMP - PullRequest
0 голосов
/ 16 октября 2011

У меня вопрос об обработке изображения с использованием C #.

Скажем, у меня есть несколько принципиальных схем в формате BMP, диаграмма содержит формы компонентов, которые связаны друг с другом.

Я написал простую программу, позволяющую определять квадратные фигуры на диаграмме как один из компонентов и записывать их местоположение. Однако следующий уровень - обнаружение более сложных фигур, таких как несколько дуг, соединенных вместе. Обратите внимание, что эти формы могут быть разных размеров на изображении. Кто-нибудь знает какой-нибудь хороший способ сделать это? без загрузки какой-либо библиотеки (теперь это мое ограничение).

После обнаружения фигур мне также нужно записать, какая фигура связана с какой, поэтому позже я могу перерисовать их. У меня есть одна неделя для этого, поэтому большое спасибо за любую помощь !!

Я использую C #.

Ответы [ 3 ]

1 голос
/ 16 октября 2011

Посмотрите на этот документ . Мое понимание их подхода:

  • Обнаружение краев
  • Обнаружение углов путем поиска перпендикулярных кромок
  • Обнаружение полигонов путем поиска групп углов
  • Обнаружение кругов с использованием преобразования Хафа

Это довольно сложная исследовательская проблема. Даже с такой мощной библиотекой компьютерного зрения, как OpenCV, внедрение эффективного решения в течение 1 недели было бы сложной задачей.

0 голосов
/ 02 января 2013

Чтобы ответить на мой старый пост, я сделал то, что мне нужно было сделать за 2 недели, это сработало хорошо. Я фактически использовал разные алгоритмы для разных форм. Алгоритмы немного изобретены, но хороший метод, который я хочу упомянуть, состоит в том, что получение гистограммы и последующее использование проекции на другую ось очень помогли.

0 голосов
/ 16 октября 2011

Вы смотрели на использование EmguCV ? Это обертка C # с открытым исходным кодом OpenCV. Он также имеет образец определения формы , который может вас заинтересовать.

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