ubuntu20.10 编译opencv-4.5.5以及添加opencv_contrib-4.5.5扩展模块,并打开摄像头测试

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 
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

你可能感兴趣的:(opencv,ubuntu,opencv,opencv_contrib,编译)