Используйте предварительно созданный интерфейс MATLAB для OpenCV

Интерфейс Computer Vision Toolbox™ для OpenCV обеспечивает предварительно созданный MATLAB® взаимодействуйте через интерфейс к библиотеке OpenCV, которой можно пользоваться, чтобы непосредственно вызвать функции OpenCV из MATLAB, не пишущий C/C ++ код.

Примечание

Интерфейс Computer Vision Toolbox для OpenCV в MATLAB поддерживает версию 4.2.0 OpenCV. Интерфейс не оказывает поддержку графического процессора.

Интерфейс Computer Vision Toolbox для OpenCV также предоставляет функции MATLAB:

  • Создайте объекты MATLAB, которые представляют Mat, UMat, Базовые классы OpenCV, указанные интеллектуальным указателем и массивами OpenCV.

    Функция MATLABОписание
    createMatВозвращает Mat объекты, которые представляют OpenCV cv::Mat структура данных, и связанный вход, выход или класс ввода - вывода массивов.
    createUMatВозвращает UMat объекты, которые представляют OpenCV cv::UMat структура данных, и связанный вход, выход или класс ввода - вывода массивов.
    clibArrayВозвращает объект, который представляет собственные массивы OpenCV или std::vector типы.
    getBasePtrВозвращает объект, который представляет базовый класс OpenCV, указанный интеллектуальным указателем.

  • Экспортируйте OpenCV выходные параметры в поддерживаемые форматы MATLAB.

    Функция MATLABОписание
    getImageЧтения и изображения экспорта сохранены в OpenCV Mat и UMat объекты к матрице или трехмерному массиву в рабочем пространстве MATLAB.
    keyPointsToStructЭкспортирует keypoints, возвращенный детектором OpenCV keypoint как структура MATLAB.
    rectToBboxЭкспортирует параметры, возвращенные прямоугольным классом OpenCV в вектор в рабочем пространстве MATLAB. Параметры экспортируются, когда ограничительная рамка координирует в индексации на основе одной.
    underlyingValueВозвращает базовые числовые значения для объектов перечисления OpenCV.

Функции OpenCV в предварительно созданной библиотеке не возвращают ошибки кроме во время времени выполнения.

Вызовите функции MATLAB

Чтобы вызвать функцию MATLAB в Интерфейсе Computer Vision Toolbox для пакета поддержки OpenCV, добавьте, что пакет называет vision.opencv.util к списку импорта и затем вызывают функцию MATLAB. Например:

import vision.opencv.util.*
[ocvMat,ocvArray] = createMat;
Можно также добавить, что частичный пакет называет vision.opencv к списку импорта и вызову функция MATLAB преднезаконченным util к имени функции. Например:
import vision.opencv.*
[ocvMat,ocvArray] = util.createMat;

В качестве альтернативы можно также вызвать функцию MATLAB путем добавления префикса его полное имя пакета. Используйте этот синтаксис, чтобы импортировать определенную функцию, не импортируя каждую функцию в пакете.

[ocvMat,ocvArray] = vision.opencv.util.createMat;

Вызов функций в библиотеке OpenCV

Чтобы вызвать функцию или класс в предварительно созданном интерфейсе MATLAB к библиотеке OpenCV, добавьте, что библиотека называет clib.opencv к списку импорта. Затем вызовите функцию OpenCV путем добавления префикса имени функции пространство имен.

import clib.opencv.*
retVal = namespace.funcname(arg1,arg2,…,argN)
namespace пространство имен функции, funcname имя функции OpenCV и arg1, arg2..., argN представляет входные параметры для функции OpenCV. retVal выходной аргумент.

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

retVal = clib.opencv.namespace.funcname(arg1,arg2,…,argN)

Примечание

Интерфейс поддерживает только cv и cvflann пространства имен. Например, можно вызвать функцию в cv пространство имен при помощи этого синтаксиса:

retVal = clib.opencv.cv.funcname(arg1,arg2,…,argN)

Отобразите справку для функций MATLAB

Чтобы просмотреть информацию о функциях MATLAB в пакете поддержки, использовать doc или help.

Введите одну из этих команд в окне команды MATLAB.

doc vision.opencv.util.

или

help vision.opencv.util.

Затем нажмите Tab. Эта команда загружает пакет, и MATLAB отображает список функций в пакете.

Чтобы просмотреть информацию о пакете в Браузере документации, введите эту команду в окне команды MATLAB, и затем нажмите Enter.

doc vision.opencv.util

Отобразите справку для интерфейса MATLAB к библиотеке OpenCV

Используйте эти функции MATLAB, чтобы просмотреть информацию о классах и функциях в интерфейсе Prebuilt MATLAB к библиотеке OpenCV.

  • doc и help — Просмотрите классы и функции в библиотеке OpenCV.

  • methods — Просмотрите конструктора, метод и имена функций пакета для класса.

  • methods с '-full' опция — конструктор Представления, метод и подписи функции пакета.

  • methodsview — Просмотрите табличное представление сигнатур методов. methodsview окно позволяет вам найти информацию, не просматривая Командное окно путем прокрутки.

Отобразите классы и функции пакета путем ввода этой команды и затем нажатия Tab.

doc clib.opencv.

Эта команда загружает пакет, и MATLAB отображает список членов пакета. Чтобы просмотреть пакет, нажмите Backspace, чтобы удалить период, затем нажать Enter. MATLAB отображает все классы и функции в библиотеке OpenCV.

Чтобы отобразить методы класса, вызовите methods функция для того класса. Например, чтобы видеть методы Affine3d класс, введите эту команду.

methods clib.opencv.cv.Affine3d
Methods for class clib.opencv.cv.Affine3d:

Affine3d     eq           gt           le           ne           rotation     translate    
concatenate  ge           inv          lt           rotate       rvec         translation  

Static methods:

Identity     

Methods of clib.opencv.cv.Affine3d inherited from handle.

Чтобы отобразить сигнатуры методов для класса, вызовите methodsview функция для того класса. Например:

methodsview clib.opencv.cv.Affine3d

Эта команда открывает окно, которое отображает методы и информацию об их аргументах и возвращенных значениях.

Ограничения

Предварительно созданный интерфейс MATLAB к библиотеке OpenCV не поддерживает функциональности, которые содержат эти после функций языка или типов данных.

  • Любой тип с размером, больше, чем 64 бита, такие как long double

  • Массивы типов символов (wchar_t, char16_t, char32_t)

  • Ссылки на указатель, такие как int*&

  • Указатели или массивы типа std::string

  • Указатели или ссылки на перечисления

  • Члены справочных данных

  • void* элементы данных

  • std интеллектуальные указатели кроме std::shared_ptr

  • Статические элементы данных

  • ** указатели, кроме:

    • MATLAB поддерживает char**

    • MATLAB поддерживает ** указатели на пользовательские классы, используемые в качестве функции или ​method типов параметра.

  • Многоуровневые указатели, такие как type***

  • C указатели функции и std::function как функциональные типы возврата или элементы данных. Вы также не можете передать функцию MATLAB как вход к указателям функции C или std::function параметр.

  • Шаблоны классов с неполным или никакими инстанцированиями

  • Пользовательский тип данных union

  • Массивы типа std::vector

  • Типы заданы в std пространство имен, кроме этих поддерживаемых типов:

    • std::string

    • std::wstring

    • std::u16string

    • std::u32string

    • std::vector

    • std::shared_ptr

    • std::function

Похожие темы