Install and Use Computer Vision Toolbox Interface for OpenCV in MATLAB

Use the OpenCV Interface files to integrate your OpenCV C++ code into MATLAB® and build MEX-files that call OpenCV functions. The support package also contains graphics processing unit (GPU) support.

Installation

After you install third-party support files, you can use the data with the Computer Vision Toolbox™ product. To install the Add-on support files, use one of the following methods:

  • Select Get Add-ons from the Add-ons drop-down menu from the MATLAB desktop. The Add-on files are in the “MathWorks Features” section.

  • Type visionSupportPackages in a MATLAB Command Window and follow the prompts.

Note

You must have write privileges for the installation folder.

When a new version of MATLAB software is released, repeat this process to check for updates. You can also check for updates between releases.

Support Package Contents

The Computer Vision Toolbox Interface for OpenCV in MATLAB support files are installed in the visionopencv folder. To find the path to this folder, type the following command:

fileparts(which('mexOpenCV')) 
The visionopencv folder contain these files and folder.

FilesContents
example folderTemplate Matching, Foreground Detector, and Oriented FAST and Rotated BRIEF (ORB) examples, including a GPU version. Each subfolder in the example folder contains a README.txt file with step-by-step instructions.
registry folderRegistration files.
mexOpenCV.m fileFunction to build MEX-files.
README.txt fileHelp file.

The mex function uses prebuilt OpenCV libraries, which ship with the Computer Vision Toolbox product. Your compiler must be compatible with the one used to build the libraries. The following compilers are used to build the OpenCV libraries for MATLAB host:

Operating System Compatible Compiler
Windows® 64 bitMicrosoft® Visual Studio® 2015 Professional or Visual Studio 2017
Linux® 64 bitgcc-4.9.3 (g++)
Mac 64 bitXcode 6.2.0 (Clang++)

Create MEX-File from OpenCV C++ file

This example creates a MEX-file from a wrapper C++ file and then tests the newly created file. The example uses the OpenCV template matching algorithm wrapped in a C++ file, which is located in the example/TemplateMatching folder.

  1. Change your current working folder to the example/TemplateMatching folder:

    cd(fullfile(fileparts(which('mexOpenCV')),'example',filesep,'TemplateMatching'))

  2. Create the MEX-file from the source file:

    mexOpenCV matchTemplateOCV.cpp

  3. Run the test script, which uses the generated MEX-file:

    testMatchTemplate

Use the Computer Vision Toolbox Interface for OpenCV in MATLAB C++ API

The mexOpenCV interface utility functions convert data between OpenCV and MATLAB. These functions support CPP-linkage only. GPU support is available on glnxa64, win64, and Mac platforms. The GPU-specific utility functions support CUDA enabled NVIDIA GPU with compute capability 3.0 or higher. See the Parallel Computing Toolbox™ System Requirements, The GPU utility functions require the Parallel Computing Toolbox software.

The Computer Vision Toolbox Interface for OpenCV in MATLAB API supports OpenCV version 4.2.0.

FunctionDescription
ocvCheckFeaturePointsStruct

Check that MATLAB struct represents feature points

ocvStructToKeyPoints

Convert MATLAB feature points struct to OpenCV KeyPoint vector

ocvKeyPointsToStruct

Convert OpenCV KeyPoint vector to MATLAB struct

ocvMxArrayToCvRect

Convert a MATLAB struct representing a rectangle to an OpenCV CvRect

ocvCvRectToMxArray

Convert OpenCV CvRect to a MATLAB struct

ocvCvBox2DToMxArray

Convert OpenCV CvBox2D to a MATLAB struct

ocvCvRectToBoundingBox_{DataType}

Convert vector<cv::Rect> to M-by-4 mxArray of bounding boxes

ocvMxArrayToSize_{DataType}

Convert 2-element mxArray to cv::Size

ocvMxArrayToImage_{DataType}

Convert column major mxArray to row major cv::Mat for image

ocvMxArrayToMat_{DataType}Convert column major mxArray to row major cv::Mat for generic matrix
ocvMxArrayFromImage_{DataType}

Convert row major cv::Mat to column major mxArray for image

ocvMxArrayFromMat_{DataType}Convert row major cv::Mat to column major mxArray for generic matrix.
ocvMxArrayFromVector

Convert numeric vectorT to mxArray

ocvMxArrayFromPoints2f

Converts vector<cv::Point2f> to mxArray

GPU FunctionDescription
ocvMxGpuArrayToGpuMat_{DataType}

Create cv::gpu::GpuMat from gpuArray

ocvMxGpuArrayFromGpuMat_{DataType}

Create gpuArray from cv::gpu::GpuMat

Create Your Own OpenCV MEX-files

Call the mxArray function with your source file.

mexOpenCV yourfile.cpp

For help creating MEX files, at the MATLAB command prompt, type:

help mexOpenCV

Run OpenCV Examples

Each example subfolder in the Computer Vision Toolbox Interface for OpenCV in MATLAB support package contains all the files you need to run the example. To run an example, you must call the mexOpenCV function with one of the supplied source files.

 Run Template Matching Example

 Run Foreground Detector Example

 Run Oriented FAST and Rotated BRIEF (ORB) Detector Example

 Run Detect ORB Features (GPU Version) Example

See Also

|

Related Topics