Я пытаюсь написать алгоритм обнаружения гребня, и все найденные мной источники, похоже, объединяют обнаружение края с обнаружением гребня. Прямо сейчас, я реализовал алгоритм обнаружения края Canny, но это не то, что я хочу: например, учитывая одну строку на изображении, она эффективно переведет ее на двойную линию ребер (поскольку она будет записывать как стороны линии) - я просто хочу, чтобы он читал одну строку.Реализация определения гребня
wikipedia article об обнаружении хребта имеет кучу математики, но этот вид не помогает мне в качестве программиста (не то, чтобы я противился математике, но это не мое поле, и я не понимаю как перевести их дифференциальные уравнения в код). Есть ли хороший источник для реализации этого? Или, если на то пошло, есть ли хорошая реализация с открытым исходным кодом?
Редактировать: вот простой пример. Мы начнем с простой линией:
http://img24.imageshack.us/img24/8112/linez.th.png
и запустить Осторожный алгоритм, чтобы получить:
http://img12.imageshack.us/img12/1317/canny.th.png
(вы можете увидеть, что это толще здесь - если нажать на изображение, вы увидите, что это действительно две смежные линии с заготовкой между ними)
Кроме того, я написал g на C++, но это не имеет большого значения. Но я хочу закодировать алгоритм , а не только написать SomePackage::findRidges()
и сделать с ним.
На каком языке вы пишете? У Matlab есть функции, которые обрабатывают именно это. Я был бы удивлен, если у R тоже не было этого. –
C++, но я ищу алгоритм! –
Я думаю, что у вас проблема с порогом, а не проблема поиска гребня. –