-
Notifications
You must be signed in to change notification settings - Fork 319
Installation (Windows, MATLAB, OpenCV 3)
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!
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.
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 thesources
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:
- the
opencv
sources (tag3.4.1
): https://github.com/opencv/opencv/archive/3.4.1.zip - the
opencv_contrib
sources (tag3.4.1
): https://github.com/opencv/opencv_contrib/archive/3.4.1.zip
- the
-
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. - the main
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
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:
- set the source folder as
C:/dev/opencv
- set the destination folder as:
C:/dev/build
- press Configure, and choose
Visual Studio 14 2015 Win64
as compiler - 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
- under "OPENCV" group:
- set
OPENCV_EXTRA_MODULES_PATH
toC:/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
- under "WITH" group, deselect:
-
WITH_CUDA
,WITH_CUFFT
,WITH_CUBLAS
,WITH_NVCUVID
,WITH_MATLAB
,WITH_VTK
- press Configure again
- 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
- press Configure yet another time
- press Generate
- close CMake
Next step is to actually build OpenCV. Open the created solution file in
Visual Studio: C:\dev\build\OpenCV.sln
, and do the following:
- switch configuration to "Release" mode
- build the solution ("ALL_BUILD" target), this will take a while
- select the "INSTALL" project in the solution explorer, and build it
- close Visual Studio
The resulting folder should be located at: C:\dev\build\install
.
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
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:
Congratulation, now you have OpenCV working in MATLAB!
Help: Stack Overflow (MATLAB, OpenCV) | MATLAB Answers | OpenCV Answers
- Windows + MATLAB
- Windows + Octave
- Linux + MATLAB
- Linux + Octave
- macOS + MATLAB
- macOS + Octave
- Windows + MATLAB
- Linux + MATLAB
- macOS + MATLAB