Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Разница при использовании одного алгоритма!


Автор: kshubin 3.3.2011, 18:46
Итак есть проект OpenSURF. там есть исходники запатентованного алгоритма SURF для поиска особенных точек на изображениях. вопрос вот в чем. так вот исходники скачанные для матлаба находят одно число точек. исходники скачанные для с++ находят на том же изображении в разы меньше точек. в чем грабли? как решить?

Автор: _Y_ 5.3.2011, 21:24
А те точки, что найдены обоими вариантами совпадают?

Впрочем, в любом случае можно только гадать. Например
  • Первое предположение - алгоритм в двух вариантах не абсолютно идентичен. Причины могут быть самые разные. Например, выложены разные версии.
  • Второе предположение, где-то в коде жестко зашиты константы поиска и они разные. Например, чувствительность. 
  • Когда-то давно я столкнулся с проблемой разных результатов выдаваемых программой, переведенной с одного языка на другой. Проблемы было две: 1) разные внутренние алгоритмы обработки машинной ошибки; 2) разные алгоритмы сравнения вещественных чисел.

Все эти догадки вряд-ли чем-то помогут, но зато список можно продолжать в свое удовольствие smile 

Автор: Фантом 5.3.2011, 23:21
Третий вариант (увы, весьма часто встречающийся) - не слишком аккуратный код (в одном или обоих случаях), в котором разрядность типов, машинная точность и т.п. не прописаны явно. Тогда вполне возможен вариант, что в условиях разработчиков все совпадало, а на других машинах, компиляторах и т.д. результаты "разъезжаются".

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)