使用Cmakelist 对 Opencv不同的版本切换和管理 & Linux Opencv C++安装记录(2024.0506 更)

3 篇文章 0 订阅
1 篇文章 0 订阅

Ubuntu 18.04 使用Cmakelist 对 Opencv不同的版本切换和管理

我们在运行程序的时候,经常在跑不同的代码,需要不同的Opencv 版本,那么我们应该在运行代码的时候,指定你使用哪个opencv来进行编译和运行的,我这里以opencv 3. 2 和oepncv 3.3 为例来进行说明:
首先 你需要对2个版本的opencv 进行安装,在网上下载源码之后,便可以进行编译了:
*

首先建立2个文件夹分别放置你安装opencv的路径

cd ~
mkdir otherpackage
cd ~/otherpackage
mkdir opencv3.2 
mkdir opencv 3.3 

现在对于你下载的源码进行安装。opencv 的安装进行有依赖环境,这个网上很多,读者可以自行查看。
现在开始安装opencv3.2

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_PERF_TESTS=OFF -D WITH_CUDA=OFF -D WITH_IPP=OFF -D ENABLE_PRECOMPILED_HEADERS=OFF -D CMAKE_INSTALL_PREFIX=/home/miao/otherpackage/opencv3.2 .. 
make -j4
sudo make install

cmake … 和make 命令执行时间都比较长,cmake 执行的时候可能会下载一个包导致时间的浪费,等一回就好了。或者手动下载ippicv并且把他放到opencv-3.2.0/3rdparty/ippicv/downloads/目录下。我将openccv 3.2 安装在了/home/miao/otherpackage/opencv3.2 路径下面。
继续安装opencv3.3 步骤和上面的一样:

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_PERF_TESTS=OFF CMAKE_INSTALL_PREFIX=/home/miao/otherpackage/opencv3.3 .. 
make -j4
sudo make install

我将openccv 3.3安装在了/home/miao/otherpackage/opencv3.3 路径下面。
现在为止,你的电脑上面应该安装有2个opencv 的文件夹了。
当然我的电脑有3个安装包,你可以忽略这一点
我的电脑上面有有3个安装包,你可以忽略这一点。
这时候,你点进去会发现你安装的文件夹都上了锁,你需要修改对他们的权限

 sudo chmod -R 777 opencv3.2
 sudo chmod -R 777 opencv3.3 

然后进入

cd /home/miao/otherpackage/opencv3.2/share/OpenCV

然后你发现了一个文件OpenCVConfig.cmake 这就是存放我们opencv 头文件和库文件路径的文件。一会指定不同的版本,就是指定我们不同opencv对应的这个文件的路径而已。

opencv 已经安装成功,之前下载的软件包也可以删除了。

编写Cmakelist 文件

在你的project 命令前面加上set 的指令
如果你想使用opencv 3.3 :

set(OpenCV_DIR "/home/miao/otherpackage/opencv3.3/share/OpenCV" )  # 你的opencv 3.3安装的OpenCVConfig.cmake路径
project(Test)

如果你想使用opencv 3.2 :

set(OpenCV_DIR "/home/miao/otherpackage/opencv3.2/share/OpenCV" )  # 你的opencv3.2 安装的OpenCVConfig.cmake路径
project(Test)

如果你想验证你用的是哪个opencv库:

message(STATUS ${OpenCV_INCLUDE_DIRS})   # 将对于调用的opencv的头文件的地址打印出来

C++ OpenCV 的安装笔记(20240506 OpenCV 4.x 版本的)

安装的官网链接: https://docs.opencv.org/4.x/d7/d9f/tutorial_linux_install.html

现在的Opencv 好像已经很简单可以安装了,不需要你提前装很多依赖包。

  • 下载 Source 源文件包:
https://github.com/opencv/opencv/archive/4.x.zip
unzip opencv.zip
# Create build directory
mkdir -p build && cd build
make -j8
sudo make install
## 快速查看当前 ubuntu 的 opencv 的版本
opencv_version

编译的过程当中,需要手动下载在 ippicv 的安装包 和 ade 的安装包.
Ippcv 可以 在cmake 的时候设置 -DWITH_IPP=OFF 不用去下载 Ippcv 的文件包。
ADE 包还是需要手动下载,并且需要修改对应的 DownloadADE.cmake 文件:

在Cmake 文件里 OpenCV 框架中提供的 ocv_download 函数,但是我们的机器无法翻墙的,所以需要手动下载。

修改 DownloadADE.cmke 下面的代码,按照下面的方式:

# 检查文件是否已在预期目录中, 我下载好的文件的路径
set(ade_zip_file "/home/smiao/GaussianPro/opencv-4.x/.cache/ade/ade-0.1.2d.zip")
if(EXISTS "${ade_zip_file}")
    message(STATUS "ADE zip file found in cache: ${ade_zip_file}")
    # 直接设置文件路径而无需下载
    set(ade_filename ${ade_zip_file})
    # 检查是否已解压
    set(ade_unpacked_dir "/home/smiao/GaussianPro/opencv-4.x/.cache/ade/unpacked")
    if(NOT EXISTS "${ade_unpacked_dir}")
        message(STATUS "Unpacking ADE zip file...")
        # 解压文件到指定目录
        execute_process(
            COMMAND ${CMAKE_COMMAND} -E tar xzf ${ade_zip_file}
            WORKING_DIRECTORY ${ade_src_dir}
        )
    else()
        message(STATUS "ADE is already unpacked in ${ade_unpacked_dir}")
    endif()
else()
    # 如果文件不在缓存中,则使用原来的下载逻辑
    ocv_download(
        FILENAME ${ade_filename}
        HASH ${ade_md5}
        URL
            "${OPENCV_ADE_URL}"
            "$ENV{OPENCV_ADE_URL}"
            "https://github.com/opencv/ade/archive/"
        DESTINATION_DIR ${ade_src_dir}
        ID ADE
        STATUS res
        UNPACK RELATIVE_URL
    )
endif()
  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值