ubuntu18.04安装opencv3.4.5(坑真多)

这里只安装了opencv-3.4.5没有安装opencv_contrib3.4.5。下面介绍安装流程:

opencv下载官网:https://opencv.org/releases.html

安装依赖包
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 build-essential qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenblas-base libopenblas-dev doxygen openjdk-8-jdk pylint libvtk6-dev
sudo apt-get install pkg-config

解压安装包
sudo unzip opencv-3.4.5.zip
cd opencv-3.4.5
mkdir build

下面需要编译,但是在编译之前会遇到ippv无法下载的问题
下载ippicv_2020_lnx_intel64_20191018_general.tgz
链接: https://pan.baidu.com/s/1C05qBz-eSAUIxdwljce0kw 密码: 4q33
注意:ippicv_2020_lnx_intel64_20191018_general.tgz不需要解压

cd opencv-3.4.5/3rdparty/ippicv
sudo vim ippicv.cmake
找到这句话
改成与你下载ippv文件一直对应的文件名
改成与你下载ippv文件一直对应的文件名
这里改成存放你下载ippv文件的文件夹目录,比如我的ippicv_2020_lnx_intel64_20191018_general.tgz存放在opencv-3.4.5的文件夹下我就填的如图所示
这里改成存放你下载ippv文件的文件夹目录,比如我的ippicv_2020_lnx_intel64_20191018_general.tgz存放在opencv-3.4.5的文件夹下我就填的如图所示
然后保存。

编译
cd opencv3.4.5/build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_ENABLE_NONFREE=True -D WITH_IPP=OFF …
这里面 -D WITH_IPP=OFF 这句话非常重要,意思是取消ippv文件的网络下载,如果不加这句话,会报错读取不到ippicv_2020_lnx_intel64_20191018_general.tgz这个文件。

出现的错误1
然后编译我又出现了这个错误:
/usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `ff_a64_muxer’ can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libavformat.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:256: recipe for target ‘lib/libopencv_videoio.so.3.4.0’ failed make[2]: *** [lib/libopencv_videoio.so.3.4.0] Error 1 CMakeFiles/Makefile2:7097: recipe for target ‘modules/videoio/CMakeFiles/opencv_videoio.dir/all’ failed make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2 Makefile:160: recipe for target ‘all’ failed make: *** [all] Error 2

这个问题是你的FFMPEG未安装好
重新编译FFMPEG 参考这个链接
https://jrhar.blog.csdn.net/article/details/109495052

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
unzip ffmpeg.zip
cd ffmpeg
chmod 777 configure
sudo ./configure --enable-nonfree --enable-pic --enable-shared
sudo make && sudo make install
(这一步可能会报错,因为bash文件的权限问题,解决方法是把因为权限问题无法编译的bash文件xxxx.bash,使用chmod 777 xxxx.bash )
编译完成后重新编译opencv。

出现的错误2
这里我又遇到了错误,
缺少videodev.h————linux/videodev.h not found
解决方法
sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

缺少videoio.h————sys/videoio.h not found
解决方法
sudo cp /usr/include/opencv2/videoio/videoio_c.h /usr/include/x86_64-linux-gnu/sys
sudo ln -s /usr/include/x86_64-linux-gnu/sys/videoio_c.h /usr/include/x86_64-linux-gnu/sys/videoio.h
具体参看这个链接
https://blog.csdn.net/xbs150/article/details/77840786

完成之后记得在build文件夹下 make clean
然后
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_ENABLE_NONFREE=True -D WITH_IPP=OFF …

sudo make -j

sudo make install

配置参数
方法1:
sudo /bin/bash -c ‘echo “/usr/local/lib” > /etc/ld.so.conf.d/opencv.conf’
方法2:
sudo gedit /etc/ld.so.conf.d/opencv.conf
//打开后可能是空文件,在文件内容最后添加
/usr/local/lib

==========================================================
然后使用
sudo ldconfig
这里报错
不过无关紧要
不过无关紧要,继续操作。

sudo gedit /etc/bash.bashrc
但是报错
sudo: gedit: command not found

解决方法
sudo -s
source /etc/bash.bashrc

sudo updatedb
pkg-config opencv --modversion #查看opencv版本
3.4.5 #完成

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是在Ubuntu 18.04上安装OpenCV 3.4.5 GPU的步骤: 1. 更新系统: sudo apt update && sudo apt upgrade 2. 安装依赖项: sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libopencv-dev 3. 安装CUDA和cuDNN(如果已经安装可以跳过此步骤): 3.1 安装CUDA: sudo apt install nvidia-cuda-toolkit 3.2 安装cuDNN: 下载相应版本的cuDNN(需要注册NVIDIA账号):https://developer.nvidia.com/rdp/cudnn-download 解压文件: tar -xzvf cudnn-10.0-linux-x64-v7.3.1.20.tgz 进入文件夹: cd cuda 复制文件: sudo cp -P include/cudnn.h /usr/include sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/ sudo chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn* 4. 下载OpenCV 3.4.5源码: git clone -b 3.4.5 https://github.com/opencv/opencv.git git clone -b 3.4.5 https://github.com/opencv/opencv_contrib.git 5. 编译OpenCV: 进入OpenCV源码目录: cd opencv 创建build目录: mkdir build 进入build目录: cd build 配置编译: cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=ON -D CUDA_ARCH_BIN=6.1 -D CUDA_ARCH_PTX=6.1 -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules .. CUDA_ARCH_BIN和CUDA_ARCH_PTX的值根据你的显卡架构而定。可以使用以下命令确定你的架构: lspci | grep -i nvidia 例如,我的显卡架构是GeForce GTX 1080,值为6.1。 编译: make -j8 安装: sudo make install 6. 检查安装: 运行以下命令检查OpenCV是否正确安装: pkg-config --modversion opencv 如果输出版本号,说明安装成功。 至此,在Ubuntu 18.04上安装OpenCV 3.4.5 GPU完成。 ### 回答2: 安装OpenCV 3.4.5 GPU版本的步骤如下: 1. 安装NVIDIA驱动程序:首先,需要安装适合您的图形处理器的NVIDIA驱动程序。您可以从NVIDIA官方网站上下载并安装最新的驱动程序。确保您选择与您的GPU和Ubuntu 18.04版本相匹配的驱动程序。 2. 安装CUDA:CUDA是用于利用GPU计算能力的平台和编程模型。同样,您需要选择与您的GPU和Ubuntu 18.04版本相匹配的CUDA版本。您可以从NVIDIA官方网站上下载并安装CUDA。 3. 安装cuDNN:cuDNN是一个NVIDIA深度神经网络库,它提供了加速神经网络训练和推理的功能。您需要选择与您的CUDA版本相匹配的cuDNN版本,并从NVIDIA官方网站上下载并安装它。 4. 安装OpenCV依赖项:在编译和安装OpenCV之前,您需要安装一些必要的依赖项。打开终端并运行以下命令: ```bash sudo apt-get update sudo apt-get install build-essential cmake git pkg-config libgtk-3-dev \ libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev \ libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libatlas-base-dev \ gfortran libcanberra-gtk3-module ``` 5. 克隆OpenCV存储库:使用以下命令克隆OpenCV存储库: ```bash cd ~ git clone https://github.com/opencv/opencv.git ``` 6. 切换到OpenCV 3.4.5版本:默认情况下,您可能会得到OpenCV的最新版本。使用以下命令切换到3.4.5版本: ```bash cd opencv git checkout 3.4.5 ``` 7. 创建一个构建目录并切换到该目录: ```bash mkdir build cd build ``` 8. 使用CMake配置OpenCV构建选项: ```bash cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF \ -D WITH_CUDA=ON -D CUDA_ARCH_BIN=<Your_CUDA_ARCH_BIN> -D CUDA_ARCH_PTX=<Your_CUDA_ARCH_PTX> \ -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules .. ``` 根据您的具体需求,您可能需要根据OpenGL版本设置WITH_OPENGL参数,或根据您的OpenCV构建路径设置OPENCV_EXTRA_MODULES_PATH参数。 9. 编译和安装OpenCV: ```bash make -j$(nproc) sudo make install sudo ldconfig ``` 10. 测试OpenCV设置是否成功:编写一个简单的OpenCV程序并进行编译和执行,以测试OpenCV安装是否成功。 希望这些步骤能帮助您成功安装OpenCV 3.4.5 GPU版本。记得根据您的硬件和系统版本进行相应的选择和配置。 ### 回答3: 首先,在Ubuntu 18.04上安装OpenCV 3.4.5 GPU版本需要确保你已经正确安装了CUDA和cuDNN,并且你的显卡支持CUDA。 以下是在Ubuntu 18.04上安装OpenCV 3.4.5 GPU版本的步骤: 1. 安装CUDA和cuDNN:访问NVIDIA官方网站,下载并安装与你的显卡型号和Ubuntu版本相匹配的CUDA和cuDNN版本。 2. 确认CUDA和cuDNN安装成功:在终端输入以下命令来检查CUDA是否正确安装: ```bash nvcc -V ``` 如果正确安装,你将看到CUDA的版本信息。 3. 安装依赖项:在终端中运行以下命令来安装必要的依赖项: ```bash sudo apt-get update sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev ``` 4. 下载OpenCV源代码:在终端输入以下命令来下载OpenCV 3.4.5的源代码: ```bash cd ~ git clone https://github.com/opencv/opencv.git cd opencv git checkout 3.4.5 ``` 5. 编译并安装OpenCV:在终端中依次运行以下命令来编译和安装OpenCV: ```bash cd ~ mkdir opencv_build cd opencv_build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. make -j8 sudo make install ``` 6. 安装OpenCV的GPU模块:在终端中,进入OpenCV源代码的目录,然后执行以下命令: ```bash cd ~/opencv_contrib/modules git clone https://github.com/opencv/opencv_contrib.git cd ~/opencv_build cmake -DOPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules .. make -j8 sudo make install ``` 7. 配置环境变量:打开终端配置文件 `~/.bashrc`,并在文件末尾添加以下内容: ```bash export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ``` 保存文件并运行以下命令来应用配置更改: ```bash source ~/.bashrc ``` 这样,你就已经成功在Ubuntu 18.04上安装OpenCV 3.4.5 GPU版本。你可以使用以下命令验证安装是否成功: ```bash pkg-config --modversion opencv ``` 如果OpenCV的版本信息显示为3.4.5,并且你的显卡支持CUDA,那么你已经成功安装OpenCV 3.4.5 GPU版本。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值