前言
开发不同工程时可能会需要不同版本的OpenCV,因此在电脑上安装多个版本的OpenCV很有必要。关键是安装到不同的路径,并在CMakeList.txt中找到需要的版本。
多版本共存
我已经安装好OpenCV3.4.3,一般安装在/usr/local下。
此时需要安装另一个版本的OpenCV4.5.5,就不能再安装到/usr/local,而应该选择其他路径,否则会覆盖掉之前的版本。
安装opencv 4.5.5和opencv_contrib 4.5.5
下载
直接给出github链接
https://github.com/opencv/opencv/tree/4.5.5
https://github.com/opencv/opencv_contrib/tree/4.5.5
下载好后,解压到同一个文件夹下。
我放在了~/opencv4.5.5/中。
并创建了一个install文件夹,之后安装的地址就在这,要找的库也在这里。
安装依赖
sudo apt-get install cmake
sudo apt-get install build-essential
sudo apt-get install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
编译
cd ~/opencv4.5.5/opencv-4.5.5
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=~/opencv-4.5.5/install -DOPENCV_EXTRA_MODULES_PATH=~/opencv-4.5.5/opencv_contrib-4.5.5/modules ~/opencv-4.5.5/opencv-4.5.5 -DWITH_CUDA=OFF -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF ..
make -j4
sudo make install
说明
- 其中
~/opencv-4.5.5/install为sudo make install的路径,这个十分关键。 ~/opencv-4.5.5//opencv_contrib-4.5.5/modules为opencv_contrib_4.5.5解压后的地址,~/opencv-4.5.5/opencv-4.5.5为opencv_4.5.5解压后地址。- 很多OFF,是为了快速编译
CMakeLists.txt中使用新版本Opencv
在OpenCV编译好后,所在目录中会生成OpenCVConfig.cmake文件,这个文件中指定了CMake要去哪里找OpenCV。
存在多版本OpenCV时,需要找到所需版本对应的OpenCVConfig.cmake文件,并将其路径添加到工程的CMakeLists.txt中。
我在 ~/opencv-4.5.5/install 下查找 OpenCVConfig.cmake 文件,查到这个文件在~/opencv-4.5.5/install/lib/cmake/opencv4文件夹中。
所以我的CMakeLists.txt这样写:
cmake_minimum_required(VERSION 2.8)
project(test)
set(OpenCV_DIR "~/opencv-4.5.5/install/lib/cmake/opencv4")
find_package(OpenCV 4 REQUIRED)
OpenCV_DIR是包含OpenCVConfig.cmake文件的寻找地址!!!
本文档详细介绍了如何在已安装OpenCV3.4.3的基础上,安装OpenCV4.5.5及其contrib模块,以实现多版本共存。关键步骤包括选择不同安装路径、下载源码、安装依赖、编译与安装,以及在CMakeLists.txt中指定新版本OpenCV的路径。通过这种方式,可以方便地在不同项目中使用不同版本的OpenCV。

1283

被折叠的 条评论
为什么被折叠?



