2012-05-03 2 views
18

Мне нужно использовать cv::FindContours() в программе, и я должен знать алгоритм, лежащий в основе этого.Каков алгоритм, используемый opencv для поиска контуров?

Какой алгоритм openCV использовать, чтобы найти контуры?

Как это работает?

+1

Возможный дубликат [как работает cvFindContours?] (Http://stackoverflow.com/questions/8701248/how-does-cvfindcontours-work) – pmr

ответ

23

Если вы читаете documentation упоминается эта функция реализует алгоритм:

Suzuki S., Abe, К., топологического структурного анализа оцифрованных бинарных изображений по границе следующим образом. CVGIP 30 1, с 32-46 (1985)

OpenCV является открытым исходным кодом, если вы хотите увидеть, как это реализовано просто нужно прочитать код: https://github.com/opencv/opencv/blob/master/modules/imgproc/src/contours.cpp#L1655

Один из ответов на this question имеет ссылку на the paper in question, эта ссылка мертва, а бумага стоит за платной стеной, возможно, Google может помочь с поиском бесплатной копии.

+1

Спасибо, но есть проблема. Я не мог найти эту статью в Интернете (1985!), А также код opencv находится около 1700 строк и, поскольку он является модульным, тогда я не могу найти основную функцию, которая используется в этой функции. Можете ли вы дать мне ссылку или sth, которые объясняют перспективы алгоритма? (Не так сложно, если простое объяснение доступно!) –

+0

mh .. Я отредактировал ответ и добавил новую ссылку. Пожалуйста, дайте мне знать, если вам нужно что-то еще. – fireant

+0

@Milad, это ответ на ваш вопрос? – fireant

Смежные вопросы