Первый вариант — просто реализовать этот код на Python. Похоже, что все функции, упомянутые в статье, доступны в Python API. CvEM
это просто EM
(в модуле cv2):
>>> cv2.EM.__doc__
'EM([, nclusters[, covMatType[, termCrit]]]) -> <EM object>'
CvEMParams
нет, потому что EM
уже справляется с этим. Если вы ищете какую-либо другую функцию/объект, введите dir(cv2)
в консоли Python, и, скорее всего, вы найдете то, что ищете. Довольно часто вещи в Python API имеют немного разные названия, но все же найти их не составляет большой проблемы. Обратите внимание, что некоторые вещи могут быть и в модуле cv2.cv
.
Второй вариант — просто использовать этот код C++ и вызывать его из Python. Написание расширений для Python не очень просто, но если вы используете Boost.Python это не должно быть очень сложно. Написание модулей расширения — довольно популярная задача для Boost.Python, поэтому есть несколько хороших руководств, которые хорошо это описывают. Хорошей отправной точкой может быть это. Написание конвертера для cv::Mat ‹->numpy.array может быть проблемой, но здесь легко решение.
person
cyriel
schedule
25.04.2015