ubuntu系统下opencv的编译安装

ubuntu系统下opencv的编译安装

参考https://blog.csdn.net/KIK9973/article/details/118830187

1 安装准备

1.1安装依赖环境(Ubuntu18.04)

下载opencv的依赖,其中第三行的依赖是可选的,前两行的依赖则是必要的。

powershell 复制代码
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 libdc1394-22-dev

1.2下载源码

https://opencv.org/releases/

1.3.可以将源码放在任意目录,解压

powershell 复制代码
cd /mnt/d/tools
unzip -o -d ~/. opencv-4.8.0.zip

2 安装

2.1编译

2.1.1 cmake

powershell 复制代码
cd ~/opencv-4.8.0
mkdir -p build 
cd ./build
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=True -D ENABLE_CXX11=1 ..

2.1.2 make

powershell 复制代码
nproc #查看线程数
sudo make -j16    #在build 文件内 执行该命令  数字越大 后续make的过程就越快。
sudo make install

2.2 环境配置

2.2.1 修改etc/bash.bashrc

powershell 复制代码
#打开下列文件
sudo vim /etc/bash.bashrc
#文件末尾添加以下内容 并保存
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
#更新
sudo updatedb
source /etc/bash.bashrc

2.2.2 修改动态链接库

powershell 复制代码
#打开下列文件
sudo vim /etc/ld.so.conf.d/opencv.conf 
# 添加lib路經 在 末尾 保存退出
/usr/local/lib
# 更新
sudo ldconfig

报错: /sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

解决方案:

powershell 复制代码
cd /usr/lib/wsl
sudo mkdir lib2
sudo ln -s lib/* lib2
#更改wsl配置文件,将 /usr/lib/wsl/lib 改为 /usr/lib/wsl/lib2
sudo vim /etc/ld.so.conf.d/ld.wsl.conf
#测试修改是否生效
sudo ldconfig

#永久修改(有时候会报权限问题,直接手动在文件后面加那两行)
sudo cat >> /etc/wsl.conf << EOF
[automount]
ldconfig = fasle
EOF

3 检查安装情况

1.命令行查看安装情况

powershell 复制代码
#终端输入以下两命令,显示正常则安装成功
pkg-config --modversion opencv4 #查看版本号
pkg-config --libs opencv4 #查看libs库

4.程序测试

opencv在下载时已经提供了测试程序

powershell 复制代码
cd ~/opencv-4.8.0/samples/cpp/example_cmake
mkdir build
cd ./build
cmake ..
make
./opencv_example ## 生成一个可执行文件 拖入终端执行 也可
相关推荐
iCxhust1 小时前
linux目录是否保存在硬盘 启动后读入解析的
linux·运维·服务器
懒鸟一枚1 小时前
Linux 系统 Service 服务配置详解
linux·服务器·网络
RisunJan2 小时前
Linux命令-readonly(Bash 内建设置只读变量)
linux
林中青木3 小时前
OpenCV 5.0 使用方法及注意事项
人工智能·opencv·计算机视觉
FlightYe3 小时前
FFmpeg移动端硬解机制
linux·网络·ffmpeg·音视频·实时音视频·视频编解码
漂亮的摩托3 小时前
基于OpenCV与SVM的车牌识别系统实现:定位、分割与分类全流程解析
opencv·支持向量机·分类
笨笨没好名字3 小时前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
潘正翔4 小时前
docker基础_镜像使用
linux·运维·服务器·docker·容器·centos·devops
24计网1王仔寿4 小时前
Linux运维与云计算全栈系统化学习指南(Shell+虚拟化+OpenStack+Docker+公私云实战)
linux·课程设计·数据库开发·微信公众平台·neo4j·命令模式·sequoiadb
DB哥讲数据库4 小时前
rocky linux安装教程:VMware虚拟机图文讲解部署Rocky Linux 9(附镜像包)
linux·运维·服务器