Ubuntu 18.04 安装opencv4.2.0

本文档详细介绍了如何在Ubuntu18.04操作系统中安装OpenCV4.2.0,包括安装依赖、下载源文件、编译、make install、配置动态库环境、验证配置、卸载以及使用示例。通过这些步骤,读者可以学习到完整的OpenCV安装流程,并能进行图片读取和摄像头读取等基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

效果图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翟羽嚄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值