Ubuntu18.04安装OpenCV4.3.0和环境配置(支持编译CUDA并安装配置python-opencv)

下载源文件

https://blog.youkuaiyun.com/new_delete_/article/details/84797041
官方网站下载OpenCV 4.3.0安装包,在GitHub上下载OpenCV-contrib模块。
安装过程主要参考官方文档

安装依赖

首先是一些必须安装的依赖项:

$ sudo apt-get install -y build-essential checkinstall cmake pkg-config yasm git gfortran
# 添加源,防止可能会出现的找不到所需安装的库的情况
$ sudo add-apt-repository -y "deb http://security.ubuntu.com/ubuntu xenial-security main"
$ sudo apt-get update
$ sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
$ sudo apt-get install -y libjpeg8-dev libjasper-dev libpng12-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libv4l-dev
$ sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk2.0-dev libtbb-dev libatlas-base-dev libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev x264 v4l-utils

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如果需要python3支持则需要安装下面两个库:

$ sudo apt install python3-dev python3-numpy

  
  
  • 1

可以选择安装一些可选的库:

$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

  
  
  • 1

编译安装

  1. 解压安装包
$ unzip opencv-4.3.0.zip
$ unzip opencv_contrib-4.3.0.zip

  
  
  • 1
  • 2
  1. 进入解压文件夹
$ cd opencv-4.3.0

  
  
  • 1
  1. 创建编译文件夹build
$ mkdir build
$ cd build/

  
  
  • 1
  • 2
  1. cmake编译
cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local/ \ #指定安装路径
      -D CUDA_ARCH_BIN='7.5' \ #指定GPU算力,在NVIDIA官网查询
      -D WITH_CUDA=ON \ #使用CUDA
      -D WITH_CUBLAS=ON \
      -D WITH_TBB=ON \
      -D WITH_V4L=ON \
      -D WITH_QT=ON \ #使用QT支持
      -D WITH_OPENGL=ON \
      -D OPENCV_EXTRA_MODULES_PATH=~/Downloads/opencv_contrib-4.3.0/modules \ #opencv_contrib modules路径
      -D OPENCV_GENERATE_PKGCONFIG=YES ..

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

NVIDIA官网查询算力。
OPENCV_GENERATE_PKGCONFIG用于生成opencv4.pc文件,支持pkg-config功能
cmake命令的结果中可以看到是否支持CUDA以及Python情况。
查看cmake结果

  1. make编译
#使用nproc确定CPU核心数
$ nproc
$ sudo make -j6 #根据CPU核心数确定编译线程数

  
  
  • 1
  • 2
  • 3
  1. 安装
$ sudo make install

  
  
  • 1

安装成功,我是安装在home目录下,可以根据自己的偏好设置安装路径,但是演示我是按照官网给出的安装路径。
安装成功

环境配置

动态库配置

$ sudo echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv4.conf
#使配置生效
$ sudo ldconfig

  
  
  • 1
  • 2
  • 3

配置OpenCV的PKG-CONFIG环境

/usr/local/lib/pkgconfig/路径加入PKG_CONFIG_PATH中:

  1. 打开文件
$ sudo vim /etc/profile.d/pkgconfig.sh

  
  
  • 1
  1. 在文件中添加如下内容
$ export PKG_CONFIG_PATH=/usr/local/opencv4/lib/pkgconfig:$PKG_CONFIG_PATH

  
  
  • 1
  1. 使配置生效
$ source /etc/profile

  
  
  • 1

Python-OpenCV环境[如果安装python支持,否则可以跳过此步]

在安装目录:/usr/local/lib/python3.6/dist-packages/cv2/python-3.6/中可以找到文件cv2.cpython-36m-x86_64-linux-gnu.so,即为编译好的python3的opencv库。根据安装位置的不同和Python版本的不同文件名可能略有差异。将其链接到.../python/site-packages中,即可在Python解释器中使用Opencv。

#系统自带Python
sudo ln -s /usr/local/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/cv2.so
#如果是自己安装的需要根据自己的安装位置
sudo ln -s /usr/local/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-x86_64-linux-gnu.so <path_to_python>/lib/python3.7/dist-packages/cv2.so

  
  
  • 1
  • 2
  • 3
  • 4

测试OpenCV

C++

在解压后的/opencv-4.3.0/samples/cpp/example_cmake中存在测试用例。

  1. 修改目录下Malefile文件
    修改后如下:
CXX ?= g++
 CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv4)
LDFLAGS += $(shell pkg-config --libs --static opencv4)
all: opencv_example
opencv_example: example.o; $(CXX) $< -o $@ $(LDFLAGS)
%.o: %.cpp; $(CXX) $< -o $@ $(CXXFLAGS)
clean: ; rm -f example.o opencv_example

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  1. make生成可执行文件opencv_example
$ make

  
  
  • 1
  1. 执行
$ ./opencv_example

  
  
  • 1

成功执行可以看到Hello OpenCV字样。
执行示例文件

Python[如安装Python支持]

通过Python解释器打印OpenCV版本号

$ python3.7
Python 3.7.7 (default, Jul 2 2020, 21:58:02)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__version__)
#成功则打印版本信息
4.3.0

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

The end

如果出现"/usr/bin/ld:cannot find -lcudart_static…/usr/bin/ld: cannot find -lx86_64-linux-gnu"问题,参考解决方法。Enjoy coding.

### 正确配置 `cv_bridge` CMake 文件 对于 Ubuntu 18.04 ROS Melodic 使用 OpenCV 4.3.0 版本时遇到的兼容性问题,可以通过调整 `cv_bridgeConfig.cmake` 配置文件来解决。具体方法涉及更改该文件内的路径设置以匹配本地安装OpenCV 路径。 #### 查找编辑 `cv_bridgeConfig.cmake` 当遭遇类似 "CMake Error at /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake:113" 这样的错误信息时,表明存在路径不一致的情况[^4]。此时应定位至 `/opt/ros/melodic/share/cv_bridge/cmake/` 下的 `cv_bridgeConfig.cmake` 文件,对其进行适当修改。 #### 修改路径指向 在 `cv_bridgeConfig.cmake` 中大约第 100 行附近的位置,会发现有关于 OpenCV 安装目录的定义,默认情况下可能是 `/usr/opencv` 或其他不符合当前环境设定的地方。为了使项目能够顺利编译运行,需将此部分改为实际存在的 OpenCV 头文件所在位置,通常是 `/usr/local/include/opencv`[^2]。 ```bash sudo nano /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake ``` 在上述命令打开的文件里寻找所有提及 opencv 的地方,将其替换为新的路径: ```cmake set(OpenCV_DIR "/usr/local/lib") # 假设库位于此处 ... find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(your_target ${OpenCV_LIBS}) ``` 请注意,确切的路径取决于个人系统的具体情况以及如何安装OpenCV 库。因此,在执行这些改动之前,建议先验证自己的 OpenCV 是否确实安放在预期的位置上[^3]。 完成以上步骤之后保存更改退出编辑器,重新尝试构建工作空间应该可以解决问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值