我是靠谱客的博主 眼睛大小猫咪,最近开发中收集的这篇文章主要介绍使用opencv库编写打开摄像头压缩视频一、在Ubuntu中安装opencv-3.4.1二、使用opencv处理图片三、使用opencv播放和录制视频,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • 一、在Ubuntu中安装opencv-3.4.1
    • 1.下载
    • 2.解压
    • 3.编译
    • 4.配置
  • 二、使用opencv处理图片
  • 三、使用opencv播放和录制视频
    • 1.获取主机摄像头权限
    • 2.播放视频
    • 3.录制视频

一、在Ubuntu中安装opencv-3.4.1

1.下载

在官网中下载source版本的opencv并保存文件到home目录中
在这里插入图片描述
在这里插入图片描述

2.解压

(1)在终端打开,输入命令行unzip opencv-3.4.1.zip

在这里插入图片描述
(2)输入命令行cd opencv-3.4.1进入解压后的文件包

3.编译

(1)输入命令行sudo apt-get install cmake安装依赖库和cmake
在这里插入图片描述
(2)输入命令

mkdir my_build_dir
cd my_build_dir
cmake -D CMAKE_BUILD_TYPE=Release -D
CMAKE_INSTALL_PREFIX=/usr/local ..

创建编译文件夹,并进行cmake
在这里插入图片描述
(3)输入命令sudo make进行编译
在这里插入图片描述
(4)输入命令sudo make install进行编译
在这里插入图片描述

4.配置

(1)输入命令sudo gedit /etc/ld.so.conf.d/opencv.conf打开文件
在这里插入图片描述
(2)在文件中添加/usr/local/lib并保存
在这里插入图片描述
(3)在命令行界面输入命令sudo ldconfig
在这里插入图片描述
(4)输入命令行sudo gedit /etc/bash.bashrc 打开bash文件进行配置
(5)在文件末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
Export PKG_CONFIG_PATH  

在这里插入图片描述
(6)返回命令界面,输入命令

source /etc/bash.bashrc  
sudo updatedb 

在这里插入图片描述

二、使用opencv处理图片

1.新建一个code目录,并下载一张jpg在此目录下
2.在目录中新建程序test1.cpp
在这里插入图片描述
3.终端打开,输入命令g++ test1.cpp -o test1 pkg-config --cflags --libs opencv
编译文件
4.输入命令./test1运行程序
在这里插入图片描述

三、使用opencv播放和录制视频

1.获取主机摄像头权限

(1)win+R输入sercices.msc打开本地服务管理找到图中的红色方块的内容
在这里插入图片描述
在这里插入图片描述

(2)在虚拟机中点开设置,将USB版本设置为3.0
在这里插入图片描述

(3)右键点击虚拟机右下角的摄像图标,选择连接到主机,当图标表亮时表示连接成功

在这里插入图片描述
(注:此时虚拟机可能会没反应,然后你强制关机再次打开则会出现黑屏现象,这里提供一个解决办法①重启电脑确保所有进程关闭
②断开网络连接
③在虚拟机下载目录中找到所有.lck的文件夹并删除
④重启VM)
(注:如果VM虚拟机安装版本为15,则不能启动摄像头与主机连接,需下载VM16版本,下载地址:https://www.downkuai.com/soft/120135.html)

2.播放视频

(1)在虚拟机和主机之间建立一个共享文件夹:在虚拟机设置中找到共享文件夹建立文件
在这里插入图片描述
在这里插入图片描述
(2)在主机的文件夹中下载一段视频,在虚拟机的中找到并复制到code文件夹中
在这里插入图片描述
(3)编写test2.cpp程序
在这里插入图片描述
(4)在终端打开编译文件g++ test2.cpp -o test2 pkg-config --cflags --libs opencv
运行文件./test2
在这里插入图片描述

3.录制视频

(1)编写test.cpp程序

/*********************************************************************
打开电脑摄像头,空格控制视频录制,ESC退出并保存视频RecordVideo.avi
*********************************************************************/
#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;
	}

	//获得cap的分辨率
	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;//0  开始录制视频; 1 结束录制视频
	char flag = 0;//正在录制标志 0-不在录制; 1-正在录制

	while (1)
	{
		cap >> frame;
		key = waitKey(100);
		if (key == 32)//按下空格开始录制、暂停录制   可以来回切换
		{
			startOrStop = 1 - startOrStop;
			if (startOrStop == 0)
			{
				flag = 1;
			}
		}
		if (key == 27)//按下ESC退出整个程序,保存视频文件到磁盘
		{
			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)编译文件g++ test3.cpp -o test3 pkg-config --cflags --libs opencv
运行文件./test
在这里插入图片描述

最后

以上就是眼睛大小猫咪为你收集整理的使用opencv库编写打开摄像头压缩视频一、在Ubuntu中安装opencv-3.4.1二、使用opencv处理图片三、使用opencv播放和录制视频的全部内容,希望文章能够帮你解决使用opencv库编写打开摄像头压缩视频一、在Ubuntu中安装opencv-3.4.1二、使用opencv处理图片三、使用opencv播放和录制视频所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部