Installation in MacOS {#tutorial_macos_install} ===================== @prev_tutorial{tutorial_android_ocl_intro} @next_tutorial{tutorial_arm_crosscompile_with_cmake} | | | | -: | :- | | Original author | `@sajarindider` | | Compatibility | OpenCV >= 3.4 | The following steps have been tested for MacOSX (Mavericks) but should work with other versions as well. Required Packages ----------------- - CMake 3.9 or higher - Git - Python 2.7 or later and Numpy 1.5 or later This tutorial will assume you have [Python](https://docs.python.org/3/using/mac.html), [Numpy](https://docs.scipy.org/doc/numpy-1.10.1/user/install.html) and [Git](https://www.atlassian.com/git/tutorials/install-git) installed on your machine. @note OSX comes with Python 2.7 by default, you will need to install Python 3.8 if you want to use it specifically. @note If you XCode and XCode Command Line-Tools installed, you already have git installed on your machine. Installing CMake ---------------- -# Find the version for your system and download CMake from their release's [page](https://cmake.org/download/) -# Install the dmg package and launch it from Applications. That will give you the UI app of CMake -# From the CMake app window, choose menu Tools --> How to Install For Command Line Use. Then, follow the instructions from the pop-up there. -# Install folder will be /usr/bin/ by default, submit it by choosing Install command line links. -# Test that it works by running @code{.bash} cmake --version @endcode @note You can use [Homebrew](https://brew.sh/) to install CMake with @code{.bash} brew install cmake @endcode Getting OpenCV Source Code -------------------------- You can use the latest stable OpenCV version or you can grab the latest snapshot from our [Git repository](https://github.com/opencv/opencv.git). ### Getting the Latest Stable OpenCV Version - Go to our [downloads page](http://opencv.org/releases.html). - Download the source archive and unpack it. ### Getting the Cutting-edge OpenCV from the Git Repository Launch Git client and clone [OpenCV repository](http://github.com/opencv/opencv). If you need modules from [OpenCV contrib repository](http://github.com/opencv/opencv_contrib) then clone it as well. For example @code{.bash} cd ~/ git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git @endcode Building OpenCV from Source Using CMake --------------------------------------- -# Create a temporary directory, which we denote as `build_opencv`, where you want to put the generated Makefiles, project files as well the object files and output binaries and enter there. For example @code{.bash} mkdir build_opencv cd build_opencv @endcode @note It is good practice to keep clean your source code directories. Create build directory outside of source tree. -# Configuring. Run `cmake [] ` For example @code{.bash} cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON ../opencv @endcode or cmake-gui - set the OpenCV source code path to, e.g. `/home/user/opencv` - set the binary build path to your CMake build directory, e.g. `/home/user/build_opencv` - set optional parameters - run: "Configure" - run: "Generate" -# Description of some parameters - build type: `CMAKE_BUILD_TYPE=Release` (or `Debug`) - to build with modules from opencv_contrib set `OPENCV_EXTRA_MODULES_PATH` to `/modules` - set `BUILD_DOCS=ON` for building documents (doxygen is required) - set `BUILD_EXAMPLES=ON` to build all examples -# [optional] Building python. Set the following python parameters: - `PYTHON3_EXECUTABLE = ` - `PYTHON3_INCLUDE_DIR = /usr/include/python` - `PYTHON3_NUMPY_INCLUDE_DIRS = /usr/lib/python/dist-packages/numpy/core/include/` -# Build. From build directory execute *make*, it is recommended to do this in several threads For example @code{.bash} make -j7 # runs 7 jobs in parallel @endcode -# To use OpenCV in your CMake-based projects through `find_package(OpenCV)` specify `OpenCV_DIR=` variable. @note You can also use a package manager like [Homebrew](https://brew.sh/) or [pip](https://pip.pypa.io/en/stable/) to install releases of OpenCV only (Not the cutting edge).