Ubuntu 18.04 安装opencv4.2.0

1、安装依赖

  • 安装cmake(编译器)和依赖库
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
  • 支持python

sudo apt install python3-dev python3-numpy
  • streamer支持
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
  • 可选的依赖
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev

2、下载源文件

可以在官网https://opencv.org/releases/下载相应版本的OpenCV,主要有Source和GitHub方式下载。
在这里插入图片描述
解压:

unzip opencv-4.2.0.zip

3、编译

在解压的文件夹里新建一个文件夹用来编译OpenCV:

cd opencv-4.0.1
mkdir release
cd release

然后在新建的这个文件里运行cmake:

cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..

OpenCV4默认不生成.pc文件,OPENCV_GENERATE_PKGCONFIG=ON才会生成。
之后就是编译和安装了,我的电脑是四核八线程,可以运行make -j8,如果是四核可用make -j4。

make -j8

4、进行make install安装

sudo make install

配置c++了,先在/etc/ld.so.conf.d/文件夹下新建一个opencv4.conf,里面写入/usr/local/lib。

5、配置OpenCV动态库环境

配置OpenCV动态库环境——程序执行时加载动态库*.so的路径

cd /etc/ld.so.conf.d/
sudo touch opencv4.conf
sudo sh -c 'echo "/usr/local/lib" > opencv4.conf'

更新pkg-config:

sudo ldconfig

6、验证配置是否成功

之后可以在终端输入pkg-config --libs opencv4和pkg-config --cflags opencv4检验一下,我的输出如下:

diyun@diyun:/etc/ld.so.conf.d$ pkg-config --libs opencv4
-L/usr/local/lib -lopencv_dnn -lopencv_highgui -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core

7、 OpenCV的卸载

删掉opencv4.conf文件,再在你编译的文件夹(我的是release)下运行sudo make uinstall即可。

8、OpenCV的使用

新建一个test_opencv.cpp

复制下面任意一段代码。

读取图片

#include <iostream>
#include <opencv2/opencv.hpp>
 
using namespace std;
using namespace cv;
 
int main()
{
    
    
    Mat srcImage = imread("lena.jpg");
    imshow("src",srcImage);
 
    waitKey(0);
 
    return 0;
}

读取摄像头

/*****************************************************
2021.5.7: test_opencv.cpp
******************************************************/
#include "opencv2/core/core.hpp"    
#include "opencv2/imgproc/imgproc.hpp"    
#include "opencv2/calib3d/calib3d.hpp"    
#include "opencv2/highgui/highgui.hpp"    
#include <iostream>    
#include <fstream>    
using namespace cv;
using namespace std;
#define SRC_WIDTH  1920
#define SRC_HEIGHT 1080
int main()
{
    
    
	//测试视频
	VideoCapture capture;
    capture.open(0);
	if (!capture.isOpened())
	{
    
    
		printf("camera 打开失败\n");
	}
	else
	{
    
    
		printf("camera 打开 ok\n");
	}
	Mat frame;
	while (true)
	{
    
    
		capture >> frame;
		if (frame.data == NULL)
		{
    
    
			printf("Image is empty\n");
			break;
		}
		namedWindow("111", 0);//参数为零,则可以自由拖动
		imshow("111", frame);
		waitKey(2);
	}
	return 0;
}

编译这个文件

g++ -o test_opencv test_opencv.cpp `pkg-config opencv4 --cflags --libs`

运行

./test_opencv

效果图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/mao_hui_fei/article/details/121187135