OpenCVSharp: определение контуров

336
15 декабря 2016, 16:15

Доброго времени суток!

Нужен код определения контуров (пишу диплом - распознавание дорожных знаков), например, кольца (часть знака ограничения скорости). Буду рад любой информации по теме, так как только лезу в дебри распознавания). Заранее СПАСИБО!!!

Answer 1

Готовый код - готовый диплом. Может, и можно найти реализации, но важнее найти идею и попытаться её развить.

Во-первых, можно позаимствовать некоторые идеи из вот этой статьи: Детектирование округлостей на изображении.

Потом могу предложить то, что я бы попробовал:

  1. Создать пирамиду изображений, т.е. изображения, уменьшенные в 2, 4, 6 раз.
  2. Теперь, например, на маленьком изображении ищем круг с помощью фильтров Хаара.
  3. Теперь все потенциальные кружки, найденные на маленьком изображении, ищем на изображении большего размера.
  4. И т.д. до оригинального изображения.

Если мы имеем дело с цветным изображением, то у нас становится больше возможностей. Ведь крайне маловероятно, что вплотную со знаком у нас будет что-то красного цвета (хотя это может быть спорно), но все же можно убрать из рассмотрения часть изображения, где цвет не красный: Поиск объекта по цвету-RGB | Поиск объекта по цвету-HSV.

Еще одним упрощением будет - объединить пиксели красного цвета в области, построить так называемые bounding box, включающие каждое множество. Тогда по этим данным можно предположить, где центр кольца и какого он размера.

А если мы знаем центр и радиус, то проверить с шагом в пару градусов то, что на заданном расстоянии у нас цвет красный. И если (например) 90% точек проверки дали положительный результат, то мы нашли красный круг. Хотя так же надо проверить, что с большим радиусом у нас уже не красный цвет. При таких проверках точки на цвет еще надо иметь смазанное изображение (например, blur filter), чтобы помехи не вносили большую ошибку.

Ну также поиск контуров может помочь... Например, оператор Собеля... Но не могу точно сказать, что с ним дальше делать.

P.S. Интересней было бы, если вы изложили ваши идеи, а то, может, я совсем очевидные вещи написал.

READ ALSO
Приведение типов и многое другое

Приведение типов и многое другое

Всем приветПомогите с кодом пожалуйста

234
Строка, числа и скобки

Строка, числа и скобки

![alt text][1]На вход подается что-то типа: (12 32(32 12))Мне считать скобки перед числом, увидев число, выполнить: res=a[i]*(0

214
Как обратиться к элементу вектора в ассемблерной вставке?

Как обратиться к элементу вектора в ассемблерной вставке?

Как обратиться к элементу вектора в ассемблерной вставке c++ (vs2012)?

228
Run-Time Check Failure #3 - The variable 'x' is being used without being initialized

Run-Time Check Failure #3 - The variable 'x' is being used without being initialized

Пишу программуКод, та часть на которой ломается:

241