Skip to content
This repository has been archived by the owner on Jan 25, 2022. It is now read-only.

Installation (Windows, MATLAB, OpenCV 3)

Shiv Kumar Yadav edited this page Apr 30, 2019 · 12 revisions

IMPORTANT: mexopencv is developed against specific OpenCV releases, therefore you must be using the correct opencv & opencv_contrib versions. The latest mexopencv is only compatible with OpenCV 3.4.1.

- DO NOT use the dev-version (master branch) of opencv and opencv_contrib,
+ version 3.4.1 is expected!

1) OpenCV

The following instructions are meant to compile OpenCV specifically for use in mexopencv. OpenCV functionality that is not currently exposed or used by mexopencv are disabled (CUDA acceleration, OpenCL with UMat, etc...). If you intend to compile OpenCV for general use in your own C++ code, we recommend following the instructions in the OpenCV documentation.

Download OpenCV

First thing is to obtain OpenCV v3.4.1 (the latest stable version). You have a number of options to choose from:

  • download the official installer from SourceForge. This package contains both the source code and prebuilt binaries for Windows. You should get the file opencv-3.4.1-*.exe. We only need the contents of the sources folder from this package since we're going to build our own binaries.

    Note: this package doesn't include the extra opencv_contrib modules, so you should obtain it using one of the other options listed below.

  • (recommended) download the source tarballs directly from GitHub. This includes downloading these two archives:

  • clone the Git repositories from GitHub. Again there are two parts:

    • the main opencv repository: git clone https://github.com/opencv/opencv.git
    • the extra opencv_contrib repository: git clone https://github.com/opencv/opencv_contrib.git

    Once you clone the repositories, you need to switch to the stable 3.4.1 tag in both (git checkout tags/3.4.1).

    Note: You'll need to have access to git either from the command-line using msysgit or Cygwin, or using a graphical user interface like TortoiseGit, GitHub Desktop, SourceTree, or SmartGit.

Depending on which option you chose above, extract or move the files to some desired location. For example, set it so that you end up with these files in the following paths:

  • C:\dev\opencv\README.md
  • C:\dev\opencv_contrib\README.md

directory structure

Configure OpenCV

This step requires CMake and a supported C++ compiler (Visual Studio 2015 is used in the instructions below, but you could use any other version, VS2010 at the least).

Note that we must later use the same compiler for building mexopencv in MATLAB (i.e must be selected in mex -setup).

Note: Microsoft offers a full and free version of Visual Studio for personal use: Visual Studio Community (equivalent in functionality to the Professional Edition).

We begin by generating a VS solution to build the sources. Start the cmake-gui.exe tool, and follow these steps:

  1. set the source folder as C:/dev/opencv
  2. set the destination folder as: C:/dev/build
  3. press Configure, and choose Visual Studio 14 2015 Win64 as compiler
  4. under "BUILD" group, deselect the following:
  • BUILD_DOCS, BUILD_EXAMPLES, BUILD_PACKAGE, BUILD_PERF_TESTS, BUILD_TESTS, BUILD_JAVA
  • BUILD_opencv_apps, BUILD_opencv_cuda*, BUILD_opencv_cudev, BUILD_opencv_js, BUILD_opencv_java*, BUILD_opencv_python*, BUILD_opencv_ts, BUILD_opencv_viz, BUILD_opencv_world
  1. under "OPENCV" group:
  • set OPENCV_EXTRA_MODULES_PATH to C:/dev/opencv_contrib/modules (Even on windows make sure you use '/' instead of '' in the path as CMAKE gives an error for backslashes.)
  • enable OPENCV_ENABLE_NONFREE
  1. under "WITH" group, deselect:
  • WITH_CUDA, WITH_CUFFT, WITH_CUBLAS, WITH_NVCUVID, WITH_MATLAB, WITH_VTK
  1. press Configure again
  2. under the newly added "BUILD" group (displayed in red), deselect the following modules if possible:
  • BUILD_opencv_cvv, BUILD_opencv_freetype, BUILD_opencv_hdf, BUILD_opencv_matlab, BUILD_opencv_ovis, BUILD_opencv_sfm
  1. press Configure yet another time
  2. press Generate
  3. close CMake

CMake

Compile OpenCV

Next step is to actually build OpenCV. Open the created solution file in Visual Studio: C:\dev\build\OpenCV.sln, and do the following:

  1. switch configuration to "Release" mode
  2. build the solution ("ALL_BUILD" target), this will take a while
  3. select the "INSTALL" project in the solution explorer, and build it
  4. close Visual Studio

Visual Studio solution

The resulting folder should be located at: C:\dev\build\install.

build\install directory

Finally you need to add the OpenCV binaries (the folder with OpenCV DLLs) to the PATH environment variable. Following these instructions, the directory to add is:

  • C:\dev\build\install\x64\vc14\bin

PATH environment variable

2) mexopencv

In this final step, download mexopencv project (either clone the git repo, or download as ZIP file). Say you saved it to have this path:

  • C:\dev\mexopencv\README.markdown

Next start MATLAB, and run the following:

>> cd('C:\dev\mexopencv')
>> addpath('C:\dev\mexopencv')
>> addpath('C:\dev\mexopencv\opencv_contrib')
>> mexopencv.make('opencv_path','C:\dev\build\install', 'opencv_contrib',true)

Assuming everything went well, you can finally verify the generated MEX-files by running this in MATLAB:

>> cv.getBuildInformation()

You should see something like:

getBuildInformation

Congratulation, now you have OpenCV working in MATLAB!