手把手带你在Linux上安装带GPU加速的opencv库(C++版本)

这篇具有很好参考价值的文章主要介绍了手把手带你在Linux上安装带GPU加速的opencv库(C++版本)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.安装依赖

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev  
sudo apt-get install python-dev python-numpy python3-dev python3-numpy
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

出现下面类似错误E: unable to locate libjasper-dev,运行以下命令.

linux安装opencv,OpenCV4-Python,Vision-Life项目组,linux,opencv,c++,gpu

sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
sudo apt update
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 

提示没有E: unable to locate libjasper-dev这个包,需要添加数字签名:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt-get update
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
sudo apt update
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

检查一下有没有漏装依赖(非常重要,否则后续会失败)

sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

sudo apt-get install build-essential
sudo apt-get install cmake 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 # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg

需要出现这面这行提示,说明依赖安装好了

linux安装opencv,OpenCV4-Python,Vision-Life项目组,linux,opencv,c++,gpu

2.编译opencv

下载源码

git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

在opencv文件夹内新建build文件夹

linux安装opencv,OpenCV4-Python,Vision-Life项目组,linux,opencv,c++,gpu

编译

cmake \
	-D CMAKE_BUILD_TYPE=RELEASE \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
	-D CMAKE_INSTALL_PREFIX=/usr/local \
	-D OPENCV_EXTRA_MODULES_PATH= /home/opencv_contrib/modules \
	-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so \
	-D CUDA_ARCH_BIN=7.5 \
	-D CUDA_ARCH_PTX="" \
	-D WITH_CUDA=ON \
	-D WITH_TBB=ON \
	-D BUILD_NEW_PYTHON_SUPPORT=ON \
	-D WITH_V4L=ON \
	-D INSTALL_C_EXAMPLES=ON \
	-D INSTALL_PYTHON_EXAMPLES=ON \
	-D BUILD_EXAMPLES=ON \
	-D WITH_QT=ON \
	-D WITH_OPENGL=ON \
	-D ENABLE_FAST_MATH=1 \
	-D CUDA_FAST_MATH=1 \
	-D WITH_CUBLAS=1 \
	-D WITH_NVCUVID=ON \
	-D BUILD_opencv_cudacodec=OFF ..
  • -D OPENCV_EXTRA_MODULES_PATH= /home/opencv_contrib/modules需要填写你自己的opencv_contrib路径

  • -D CUDA_ARCH_BIN=7.5根据你的显卡去官网查看,我的显卡是2060,所以CUDA_ARCH_BIN=7.5(CUDA GPUs - Compute Capability | NVIDIA Developer)

    linux安装opencv,OpenCV4-Python,Vision-Life项目组,linux,opencv,c++,gpu

其它地方默认

编译过程需要等待较长时间…………

发现报错,需要将opencv_contrib中的modules中的cudev文件夹复制到opencv/modules里

linux安装opencv,OpenCV4-Python,Vision-Life项目组,linux,opencv,c++,gpu

cp -r /home/opencv_contrib/modules/cudev /home/opencv/modules/

继续编译linux安装opencv,OpenCV4-Python,Vision-Life项目组,linux,opencv,c++,gpu

出现下列提示,说明该步骤成功

linux安装opencv,OpenCV4-Python,Vision-Life项目组,linux,opencv,c++,gpu

执行一下两条命令,安装带gpu的opencv库

sudo make -j7
sudo make install

3.配置环境

在/etc/ld.so.conf.d/文件夹下有一个opencv.conf,里面需要写入/usr/local/lib。

cd /etc/ld.so.conf.d/
sudo touch opencv.conf
sudo sh -c 'echo "/usr/local/lib" > opencv.conf'

更新pkg-config:

sudo ldconfig

打开/etc/bash.bashrc文件,在最后两行加上这两句话

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

最后效果如图:

linux安装opencv,OpenCV4-Python,Vision-Life项目组,linux,opencv,c++,gpu

执行这三句

source /etc/bash.bashrc
sudo apt install mlocate
sudo updatedb

4.测试opencv

cd 到/opencv/samples/cpp/example_cmake目录下,依次执行以下命令:

cmake .
make
./opencv_example

该测试需要电脑有摄像头,若启动摄像头看到了画面,说明安装成功;若未启动摄像头,但出现如下显示,也安装成功:

linux安装opencv,OpenCV4-Python,Vision-Life项目组,linux,opencv,c++,gpu

测试GPU功能

新建一个main.cpp文件,代码如下:

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include "opencv2/core/cuda.hpp"
using namespace cv;
using namespace std;

int main() {
    int num_devices = cv::cuda::getCudaEnabledDeviceCount();

    if (num_devices <= 0) {
        std::cerr << "There is no device." << std::endl;
        return -1;
    }
    int enable_device_id = -1;
    for (int i = 0; i < num_devices; i++) {
        cv::cuda::DeviceInfo dev_info(i);
        if (dev_info.isCompatible()) {
            enable_device_id = i;
        }
    }
    if (enable_device_id < 0) {
        std::cerr << "GPU module isn't built for GPU" << std::endl;
        return -1;
    }
    cv::cuda::setDevice(enable_device_id);

    std::cout << "GPU is ready, device ID is " << num_devices << "\n";

    return 0;
}

新建一个CMakeLists.txt文件,代码如下

# cmake needs this line
cmake_minimum_required(VERSION 3.1)

# Define project name
project(ImageShow)

# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)

# Enable C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

# Declare the executable target built from your sources
add_executable(ImageShow main.cpp)

# Link your application with OpenCV libraries
target_link_libraries(ImageShow PRIVATE ${OpenCV_LIBS})

运行以下命令:

cmake .
make
./ImageShow

若出现下面信息,则说明Linux上成功安装带GPU加速的opencv库(C++版本)🎉🎉🎉

linux安装opencv,OpenCV4-Python,Vision-Life项目组,linux,opencv,c++,gpu

5.参考资料

Ubuntu 20.04搭建OpenCV 4.5.0 & C++环境_opencv4 ubuntu20.04-CSDN博客

Linux安装OpenCV4(可选GPU加速) - 知乎 (zhihu.com)

Ubuntu 20.04搭建OpenCV 4.5.0 & C++环境_opencv4 ubuntu20.04-CSDN博客

Linux安装OpenCV4(可选GPU加速) - 知乎 (zhihu.com)

Ubuntu22.04安装opencv依赖包libjasper-dev出现unable to locate libjasper-dev的终极解决办法_ubuntu libjasper库-CSDN博客文章来源地址https://www.toymoban.com/news/detail-849379.html

到了这里,关于手把手带你在Linux上安装带GPU加速的opencv库(C++版本)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你在linux中部署stable-diffusion-webui

            stable-diffusion-webui是什么就不用多说了,以下是安装步骤,我以linux系统为例介绍,windows系统大同小异,安装期间没有用到梯子,安装目录/opt/stable-diffusion-webui/。 1.安装Anaconda         stable-diffusion-webui要求python版本在3.8-1.10,找对应的Anaconda版本就可以了,Ana

    2024年02月03日
    浏览(52)
  • 手把手教你在Centos7.6系统安装mysql5.7

    需要安装对应系统适配的mysql,避免出现问题 我的是CentOS Linux release 7.6.1810 (Core) ,所以安装centos7.6对应的mysql5.7 点击链接在官网中获取适用的mysql文件,这里我找到的是mysql57-community-release-el7.rpm,其中mysql57代表mysql5.7,el代表centos,7代表centos的版本(因为未发布el7.6,所以用

    2024年02月03日
    浏览(72)
  • 手把手教你在Linux/Windows系统使用Nginx部署多个前端项目【详细操作】

            需求:项目上线需要将前端的前台和后台部署在服务器上提供用户进行使用,部署在不同的服务器直接在服务器安装nginx即可。但是在内网安装还是有点麻烦,因为需要联网,如果是内网可以参考Linux安装Nginx并部署前端项目【内/外网-保姆级教程】_MXin5的博客-CSDN博

    2024年02月14日
    浏览(61)
  • 【运维】手把手教你在Linux/Windows系统使用Nginx部署多个前端项目【详细操作】

            需求:项目上线需要将前端的前台和后台部署在服务器上提供用户进行使用,部署在不同的服务器直接在服务器安装nginx即可。但是在内网安装还是有点麻烦,因为需要联网,如果是内网可以参考Linux安装Nginx并部署前端项目【内/外网-保姆级教程】_MXin5的博客-CSDN博

    2024年02月08日
    浏览(61)
  • 【喂饭级AI教程】手把手教你在本机安装Stable Diffusion秋包【附带全套资源】

    今天,我们将探索一个为Bilibili社区核心贡献者秋叶大佬所发布的神器——一款整合软件包。这款软件巧妙地简化了学习Python和网络知识这一通常漫长的过程。即使是编程新手,也能轻松入门并开始使用Stable Diffusion(简称SD),并且几乎不需要任何调整,就能体验到前沿的A

    2024年04月26日
    浏览(48)
  • 【实战】手把手教你在 vscode 中写 markdown

    markdown 语法、markdown 插件咱先放放,先说最头疼的,图片问题 相对于 HBuilder 自带 markdown 图片粘贴功能来说,vscode显得不那么友好,若是不装插件粘贴截图就只能手动进行如下操作: 截取图片 将图片存在特定位置 在markdown文件中通过路径引入图片 预览 最终我找到了 Paste I

    2024年02月13日
    浏览(72)
  • Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸

    之前一直使用CPU做训练,最近手上多了台单卡1080Ti显卡主机,于是开始研究GPU训练。用GPU训练一定会使用CUDA了,刚开始接触CUDA非常非常头痛,对小白很不友好,我几乎整了整整一天,中途想放弃过很多次,最后终于弄好了,回头看看其实不是很难,但是网上文章又多又杂,

    2024年02月02日
    浏览(46)
  • 手把手带你搭建Linux环境(保姆级,包含vivado与petalinux)

    目录 1.安装VMware Workstation 2.安装ubuntu, 3.安装vivado和sdk 4.安装petalinux VMware和ubuntu尽量从官网下载自己所需要的版本,避免之后应用时后会有很多工具包不支持,官网下载速度都很快。 提醒各位注意版本控制!! 本文建议安装环境为VMware16pro版本,ubuntu16.04版本,vivado2018.3版本

    2023年04月08日
    浏览(49)
  • 手把手教你在 CentOS 7 下升级 OpenSSL

      这篇文章记录着如何在 CentOS 7 上升级 OpenSSL。会逐步介绍所需步骤,包括备份,下载和安装,以及配置等。 OpenSSL 是用于保护数据安全的重要工具。它能提供加密,解密等多项功能。然而,随着技术的发展和新的安全漏洞的出现,使用最新版本的 OpenSSL 成为了重要的需求

    2024年02月16日
    浏览(68)
  • 【云原生】手把手带你安装VirtualBox虚拟机和网络配置

    VirtualBox 是一款免费的开源虚拟机软件,它可以在 Windows 、 Mac OS 和 Linux 操作系统上运行。 VirtualBox 可以让用户在单个计算机上创建多个虚拟计算机,每个虚拟计算机都可以运行不同的操作系统和应用程序,就像它们是独立的计算机一样。 Virtualbox 下载地址:https://www.virtual

    2024年02月12日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包