Использование библиотеки OpenCV в Octave

Может ли кто-нибудь дать некоторое представление о поиске/создании оболочек OpenCV для использования в Octave?

Я нашел несколько старых веб-страниц, которые говорят об этом, но не смогли понять это!

EDIT:

На этой странице: http://octave-swig.sourceforge.net/octave-opencv.html В последнем выпуске говорится: "3/27/08: эти привязки были интегрированы в OpenCV. Последние источники теперь доступны только из OpenCV CVS".

Но OpenCV 2.4.6 не поддерживает Octave. Похоже, что в какой-то момент (OpenCV 2.0) в файле cmake OpenCV появилась "сборка с поддержкой октавы". Но этот параметр не существует в cmakelists.txt, который поставляется с OpenCV больше!

Ответ 1

Первым методом является Matlab interface generator, доступный в opencv contrib. Этот репозиторий предоставляет код для создания оболочек MEX для функций OpenCV - эти MEX подходят также для октавы, но для правильной настройки вам нужен файл CMake для самого OpenCV (то есть вы должны создать его из источников).

Как упоминалось в @McMa, есть хорошая ссылка на сбор уже созданных интерфейсов для Matlab/Octave: MEXOpenCV - вы можете просто используйте существующие источники для создания MEX, подходящих для октавы.

Для обоих методов, когда у вас уже есть источники C/С++ с интерфейсами Matlab (например, файлы C/С++ с mexFunction), вы можете скомпилировать их в MEX с помощью < следующую команду (в среде linux, но я полагаю, что нет больших различий в окнах):

mkoctfile --mex -l<opencv lib name> <source name>

где -l<opencv lib name> требуется модуль (что-то вроде -lopencv_core -lopencv_imgproc), а <source name> - ваш исходный файл (с именем mexFunction).

Более подробную информацию о mkoctfile можно найти на странице октавной документации.

Ответ 3

Я использую функции OpenCV, скомпилированные как MEX файлы в MatLab, и он работает плавно. Поскольку функции MEX выглядят почти одинаковыми как для MatLab, так и для Octave, и в зависимости от компиляторов и других подобных деталей, подобные коллекции

MEXOpenCV

может работать либо напрямую, либо быть хорошей отправной точкой для вас.