district10/cmake-templates

HOWTO: OpenCV 2 & OpenCV 3

district10 opened this issue · 5 comments

Windows

When you find_package( OpenCV REQUIRED ) in CMakeLists.txt, it just look for OpenCVConfig.cmake under OpenCV_DIR, aka include( $ENV{OpenCV_DIR}/OpenCVConfig.cmake ).

If you want to use OpenCV2 & OpenCV3 in your system at the same time. Here is my solution:

  • VS2010 + OpenCV2 (there is an official prebuild for VS2010)
  • VS2015 + OpenCV3 (there is an official prebuild for VS2015)

1.

First goto OpenCV official download page, download opencv-2.4.x.exe and opencv-3.1.x.exe.

2.

Second, extract them, set these two proper environment variables:

  • OpenCV2_DIR -> D:\OpenCV\build
  • OpenCV3_DIR -> D:\OpenCV3\build
  • OpenCV_DIR -> %OpenCV_DIR% or %OpenCV3_DIR% (which you prefer)

add to PATH:

  • %OpenCV2_DIR%\x64\vc10\bin (for VS2010 generated exe)
  • %OpenCV3_DIR%\x64\vc14\bin (for VS2015 generated exe)

reboot may needed.

3.

Last, generated VS2010, VS2015 project to use OpenCV 2, OpenCV 3 with CMake, respectively.

You can see opencv2 / opencv3 examples in:

VC Version Number & Prebuild

compiler IDE
vc14 Visual Studio 2015 (OpenCV3)
vc12 Visual Studio 2013 (OpenCV2, OpenCV3)
vc11 Visual Studio 2012 (OpenCV2)
vc10 Visual Studio 2010
vc9 Visual Studio 2008
vc8 Visual Studio 2005
vc7.1 Visual Studio .NET 2003
vc7 Visual Studio .NET 2002
vc6 Visual Studio 6.0

Ubuntu

prerequisites:

sudo apt-get install --assume-yes build-essential cmake git
sudo apt-get install --assume-yes build-essential pkg-config unzip ffmpeg qtbase5-dev python-dev python3-dev python-numpy python3-numpy
sudo apt-get install --assume-yes libopencv-dev libgtk-3-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev
sudo apt-get install --assume-yes libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install --assume-yes libv4l-dev libtbb-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev
sudo apt-get install --assume-yes libvorbis-dev libxvidcore-dev v4l-utils

CV3

cmake, make.

CV2

cmake, make.

Usage

When you want opencv 2,:

export OpenCV2_DIR=/home/tzx/Downloads/archive/opencv-2.4.13/build
cd ~/git/cmake-templates/opencv
mkdir build && cd build
cmake ..
make

When you want opencv 3:

cd ~/git/cmake-templates/opencv3
mkdir build && cd build
export OpenCV2_DIR=/home/tzx/Downloads/archive/opencv-3.1/build
cmake ..
make

I installed OpenCV 3 and added these lines to my .zshrc:

export OpenCV2_DIR=/home/tzx/Downloads/archive/opencv-2.4.13/build2
export OpenCV3_DIR=/usr/local/share/OpenCV

Refs

In my case, better not configure CUDA to the WONT_INSTALL opencv 2.
Or you may come across link error.

I just set OpenCV_DIR in CMakeLists.txt where my OpenCVConfig.cmake locates.

@JingeTu Like this: include( $ENV{OpenCV_DIR}/OpenCVConfig.cmake )?