1. 准备好环境
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
2.出现错误:E: Unable to locate package libjasper-dev ,添加仓库
#E: Unable to locate package libjasper-dev
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
3.出现错误:E: The repository 'http://security.ubuntu.com/ubuntu xenial-security InRelease' is not signed. 由于没有公钥,无法验证下列签名,添加认证,重新下载
#E: The repository 'http://security.ubuntu.com/ubuntu xenial-security InRelease' is not signed.
#由于没有公钥,无法验证下列签名,添加认证
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
sudo apt install libjasper1 libjasper-dev
4.下载源码
#下载源码
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
5.打开opencv-4.5.5 的根目录
#打开opencv 的根目录,本人使用挂载的方式添加的opencv-4.5.5源码,不建议这样做,会导致camke 或者make 出错,建议copy 到/home/xxx 下进行整个编译过程
cd /mnt/hgfs/Linux/opencv-4.5.5
******** 使用挂载的方式添加的opencv-4.5.5源码,不建议这样做,会导致camke 或者make 出错,建议整个编译过程 copy 到/home/xxx 下进行。
6.在根目录下创建文件夹用来保存编译后产生的文件
#在 opencv-4.5.5 根目录下创建文件夹用来保存编译后产生的文件
mkdir linux_build
7.设置编译参数
#设置编译参数
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D BUILD_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D WITH_V4L=ON \
-D WITH_TBB=OFF \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D OPENCV_EXTRA_MODULES_PATH=/home/navy/opencv_linux/opencv_contrib-4.5.5/modules \
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv-4.5.5 \
-D OPENCV_GENERATE_PKGCONFIG=YES .. # 最后两点是返回上一级
cmake 过程中会出错,如果不涉及到自己用到的某些函数,忽略即可。
8.编译并安装
#开始编译
make
#将其安装到CMAKE_INSTALL_PREFIX=/usr/local/opencv-4.5.5
make install
9.设置环境变量
1)执行:sudo gedit /etc/ld.so.conf.d/opencv.conf,添加路径
/usr/local/opencv-4.5.5/lib
2)执行:sudo ldconfig
3)执行:sudo gedit /etc/bash.bashrc,添加参数
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv-4.5.5/lib/pkgconfig export PKG_CONFIG_PATH
4)使其参数有效,执行:source /etc/bash.bashrc
5)查看路径,执行 :echo $PKG_CONFIG_PATH
6)查看版本号,执行:pkg-config opencv4 --modversion
10. demo test.cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
//从摄像头读取视频
VideoCapture capture(0);
//循环显示每一帧
Mat frame;
while(capture.read(frame)){//读取当前帧
imshow("frame",frame);//显示当前帧
waitKey(30);//掩饰30ms
}
system("pause");
return 0;
}
11.编译demo test.cpp
g++ test.cpp -o test `pkg-config --cflags --libs opencv4`#引号是ESC 下面的按键
12.执行:./test 就会显示视频信号(电脑插上usb camera或者电脑自带的camera)
13.如果无法显示视频信号,可以先安装工具进行测试:
#安装视频查看工具
apt install cheese
#查看视频
cheese
#安装查看v4l2-utils工具
apt install v4l2-utils
#查看video
v4l2-ctl --list-device