Обнаружить маркер с помощью opencv и python

Я пытаюсь обнаружить маркер в видеопотоке с веб-камеры и наложить на него трехмерный объект — примерно так: http://www.morethantechnical.com/2009/06/28/augmented-reality-with-nyartoolkit-opencv-opengl/

Я знаю, что artoolkit — лучший модуль для этого, но я надеялся просто использовать opencv в python, так как я недостаточно знаю c/c++, чтобы иметь возможность использовать artoolkit. Я надеюсь, что кто-то сможет направить меня на правильный путь к обнаружению маркера и определению его местоположения и ориентации и т. Д., Поскольку я понятия не имею, как лучше всего это сделать или какие функции я должен использовать.


person Mitch    schedule 09.04.2010    source источник


Ответы (2)


OpenCV не имеет встроенной функции обнаружения/отслеживания маркеров. Однако он предоставляет все необходимые алгоритмы, поэтому довольно легко реализовать свой собственный. В статье, на которую вы ссылаетесь, OpenCV используется только для захвата видео. Обнаружение маркера выполняется NyARToolkit, производным от ARToolkit. У NyARToolkit есть версии для Java, C# и ActionScript.

ARToolkit в основном написан на простом C без использования причудливых функций C++. Это, вероятно, проще в использовании, чем вы думали. Документация содержит хорошо объясненные учебные пособия. например, http://www.hitl.washington.edu/artoolkit/documentation/devstartup.htm

Вводная документация может помочь вам понять процесс обнаружения маркеров, даже если вы решите не использовать ARToolkit.

person Arrix    schedule 01.05.2010

Я думаю, что наиболее часто используемый способ обнаружения маркеров с использованием python и open CV — это использование дескрипторов SURF. Я нашел очень полезным это видео и связанный код, который вы можете найти в этой страницы. Здесь вы можете скачать код. Я не знаю, как наложить на него трехмерный объект, но я уверен, что вы можете что-то сделать с помощью pygame или matplotlib.

person G M    schedule 27.10.2013