Ubuntu下opencv的安装及使用

一.opencv的安装和配置

1.官网下载

2.移动至主目录并解压

在这里插入图片描述

  • 其中解压可用unzip opencv-3.4.11.zip也可以直接在主目录解压

3.安装cmake

  • 输入指令sudo apt-get install cmake

4.安装依赖库

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

5.新建build文件并进入

在这里插入图片描述

6.编译

  • 执行cmake
    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
  • 执行make(配置到100%即成功)

    sudo make
    在这里插入图片描述

sudo make install

6.配置opencv编译环境

  • 用gedit打开/etc/ld.so.conf
    sudo gedit /etc/ld.so.conf
  • 文件中加入/usr/loacal/lib
    在这里插入图片描述

sudo ldconfig

  • 修改bash.bashrc文件
    sudo gedit /etc/bash.bashrc
  • 在文件末尾加入
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

    export PKG_CONFIG_PATH
    在这里插入图片描述

7.检验

cd opencv3

cd samples

cd cpp

cd example_cmake

cmake .

make

./opencv_example

在这里插入图片描述

  • 出现如上Hello OpenCV则配置成功

二.opencv的使用

1.图像处理

(1).新建文件夹mytest

在这里插入图片描述

(2).选择图片保存在opencv-3.4.11文件夹中

在这里插入图片描述

(3).创建test.cpp并输入代码

在这里插入图片描述

在这里插入图片描述

(4).保存,编译,运行

在这里插入图片描述

(5).结果如图

在这里插入图片描述

2.使用摄像头

(1).配置虚拟机摄像头USB

  • Win+R打开cmd 输入services.msc把虚拟机的USB服务打开
    在这里插入图片描述

在这里插入图片描述

  • 虚拟机设置中USB调整为USB3.1
    在这里插入图片描述

(2).安装cheese

sudo apt-get install cheese

  • cheese命令打开摄像头
    在这里插入图片描述

3.播放视频

(1).创建test2.cpp文件

nano test2.cpp

  • 代码:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
	VideoCapture capture("cs.mp4");
	while(1)
    {
    	Mat frame;//定义一个Mat变量,用于存储每一帧的图像
		capture >> frame;//读取当前帧
		if(frame.empty())//播放完毕,退出
			break;
		imshow("读取视频帧",frame);//显示当前帧
		waitKey(30);//掩饰30ms
	}
    system("pause");
    return 0;
}

(2).编译test2.cpp文件

在这里插入图片描述

(3).运行test2

./test2
在这里插入图片描述

4.打开摄像头录制视频

(1).创建test3.cpp文件

nano test3.cpp

  • 代码:
#include<iostream>
#include <opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main()
{
	VideoCapture cap(0);
	if (!cap.isOpened())
	{
		cout << "error" << endl;
		waitKey(0);
		return 0;
	}
	int w = static_cast<int>(cap.get
    (CV_CAP_PROP_FRAME_WIDTH));

	int h = static_cast<int>(cap.get(CV_CAP_PROP_FRAME_HEIGHT));

	Size videoSize(w, h);
	VideoWriter writer("RecordVideo.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25, videoSize);

	Mat frame;
	int key;
	char startOrStop = 1;
	char flag = 0;
	while (1)
	{
		cap >> frame;
		key = waitKey(100);
		if (key == 32)
		{
			startOrStop = 1 - startOrStop;
			if (startOrStop == 0)
			{
				flag = 1;
			}
		}
		if (key == 27)
		{
			break;
		}

		if (startOrStop == 0 && flag==1)
		{
			writer << frame;
			cout << "recording" << endl;
		}
		else if (startOrStop == 1)
		{
			flag = 0;
			cout << "end recording" << endl;
			
		}
		imshow("picture", frame);
	}
	cap.release();
	writer.release();
	destroyAllWindows();
	return 0;
}

(2).编译test3.cpp文件

在这里插入图片描述

(3).运行test3

./test3

  • 空格开始录制,esc退出录制
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值