当前位置: 首页 > news >正文

微网站中定位功能怎么做的seo优化案例

微网站中定位功能怎么做的,seo优化案例,做军事网站的项目背景图片,词典网站模板目录 引言 一、视频读取技术 VideoCapture 类 构造函数 常用方法 二、视频写入技术 VideoWriter 类 构造函数 常用方法 三、视频录制技术 1. 包含OpenCV头文件 2. 初始化VideoCapture对象 3. 设置视频编码器 4. 读取和写入视频帧 5. 释放资源 6. 编码格式选择 …

目录

引言

一、视频读取技术

VideoCapture 类

构造函数

常用方法

二、视频写入技术

VideoWriter 类

构造函数

常用方法

三、视频录制技术

1. 包含OpenCV头文件

2. 初始化VideoCapture对象

3. 设置视频编码器

4. 读取和写入视频帧

5. 释放资源

6. 编码格式选择

 四、示例代码:读写视频文件

五、总结


引言

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,广泛应用于图像和视频处理、面部识别、物体检测等多个领域。本文将详细介绍OpenCV中的视频读写技术,包括VideoCapture 和 VideoWriter 类和相关函数,并通过代码示例展示如何读取和写入视频文件。

一、视频读取技术

VideoCapture 类

cv::VideoCapture 是OpenCV中用于处理视频输入的类,它可以从摄像头、视频文件或图像序列中读取帧。以下是该类的主要方法和用法。

构造函数
  • cv::VideoCapture::VideoCapture(const string& filename): 通过文件路径打开视频文件。
  • cv::VideoCapture::VideoCapture(int device): 通过设备ID打开摄像头,默认摄像头ID为0。
常用方法
  • bool isOpened() const: 检查视频是否成功打开。
  • bool read(OutputArray image): 读取视频中的一帧,并将其存储在Mat对象中。
  • void release(): 释放VideoCapture对象所占用的资源。
  • double get(int propId): 获取视频属性,如帧率、宽度、高度等。
  • bool set(int propId, double value): 设置视频属性,如帧率、宽度、高度等。


二、视频写入技术

VideoWriter 类

cv::VideoWriter 是OpenCV中用于将图像帧序列保存为视频文件的类。在创建视频文件时,需要指定文件名、编解码器、帧率、宽度和高度等参数。

构造函数
  • cv::VideoWriter::VideoWriter(const string& filename, int fourcc, double fps, Size frameSize, bool isColor=true):
    • filename: 视频文件的名称和路径。
    • fourcc: 编解码器,如 CV_FOURCC('M','J','P','G') 表示MJPG编解码器。
    • fps: 视频的帧率。
    • frameSize: 视频帧的大小。
    • isColor: 视频图像是否为彩色(默认为true)。
常用方法
  • bool isOpened() const: 检查VideoWriter对象是否成功打开。
  • void write(InputArray image): 将一帧图像写入视频文件。
  • void release(): 释放VideoWriter对象所占用的资源。

三、视频录制技术

1. 包含OpenCV头文件

在C++源文件的开头,需要包含OpenCV的相关头文件。

#include <opencv2/opencv.hpp>  
#include <iostream>

2. 初始化VideoCapture对象

使用cv::VideoCapture类可以捕获视频数据,包括来自摄像头的实时视频。

cv::VideoCapture cap(0); // 0为默认摄像头  
if (!cap.isOpened()) {  std::cerr << "无法打开摄像头" << std::endl;  return -1;  
}

3. 设置视频编码器

在录制视频之前,需要设置视频的编码格式、帧率、分辨率等参数。

int fourcc = cv::VideoWriter::fourcc('M', 'J', 'P', 'G'); // 选择MJPG编码  
double fps = 20.0; // 帧率  
cv::Size frameSize(640, 480); // 分辨率  
cv::VideoWriter videoWriter("output.avi", fourcc, fps, frameSize, true); // 彩色模式  if (!videoWriter.isOpened()) {  std::cerr << "无法打开视频写入器" << std::endl;  return -1;  
}

4. 读取和写入视频帧

通过循环读取摄像头捕获的帧,并将它们写入到视频文件中。

cv::Mat frame;  
while (true) {  bool ret = cap.read(frame);  if (!ret) {  std::cerr << "无法读取视频帧" << std::endl;  break;  }  // 可以在这里对frame进行处理,如色彩转换、添加水印等  videoWriter.write(frame); // 写入帧到视频文件  // 显示帧(可选)  cv::imshow("Video Capture", frame);  // 按'q'键退出循环  if (cv::waitKey(1) == ord('q')) {  break;  }  
}

5. 释放资源

完成视频录制后,需要释放VideoCapture和VideoWriter对象占用的资源。

cap.release();  
videoWriter.release();  
cv::destroyAllWindows();

6. 编码格式选择

OpenCV支持多种视频编码格式,如MJPG、XVID、DIVX、X264等。不同的编码格式在文件体积、压缩效率和兼容性方面有所不同。例如,MJPG适合高尺寸视频,XVID是MPEG-4编码,文件体积较小,X264可以得到更小的文件体积但可能兼容性稍差。

 四、示例代码:读写视频文件

#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;int main(int argc, char* argv[])
{// 读取原视频文件VideoCapture vcap("video.mp4");// 读取视频的帧的宽度和高度 \ 帧int fvwidth = vcap.get(CAP_PROP_FRAME_WIDTH);int fvheight = vcap.get(CAP_PROP_FRAME_HEIGHT);double fvfps = vcap.get(CAP_PROP_FPS);// 通过cout输出获取参数值cout << "宽度:" << fvwidth << endl;cout << "高度:" << fvheight << endl;cout << "帧:" << fvfps << endl;// 录制MP4视频VideoWriter vw("writermp4.mp4", vcap.get(CAP_PROP_FOURCC), fvfps, Size(fvwidth, fvheight));Mat fm;while (1){vcap.read(fm);if (fm.empty()){break;}vw.write(fm);imshow("测试:录制视频中", fm);int key = waitKey(1);if (key == 27){break;}}vcap.release();vw.release();waitKey(0);return 0;
}

五、总结

通过本文,我们了解了OpenCV 的 VideoCapture 和 VideoWriter 类为视频读写提供了强大而灵活的功能和如何在C++中使用OpenCV库进行视频录制。这包括初始化VideoCapture对象、设置视频编码器、读取和写入视频帧以及释放资源等关键步骤。掌握这些技术后,你可以轻松地将摄像头捕获的视频数据保存为文件,并进行进一步的处理和分析。希望这篇文章对你有所帮助!


文章转载自:
http://dinncoenchanter.bpmz.cn
http://dinncojolley.bpmz.cn
http://dinncoplasmasphere.bpmz.cn
http://dinncoexospore.bpmz.cn
http://dinncospicule.bpmz.cn
http://dinncomagdalene.bpmz.cn
http://dinncoked.bpmz.cn
http://dinncoheterochrome.bpmz.cn
http://dinncodoor.bpmz.cn
http://dinncoflowerless.bpmz.cn
http://dinncoperplexedly.bpmz.cn
http://dinncohewer.bpmz.cn
http://dinncoprimavera.bpmz.cn
http://dinncoattendant.bpmz.cn
http://dinncoreturnable.bpmz.cn
http://dinncomisjudgement.bpmz.cn
http://dinncoplagiarism.bpmz.cn
http://dinncoforfeit.bpmz.cn
http://dinncolentiginose.bpmz.cn
http://dinncoexplicatory.bpmz.cn
http://dinncoclodpate.bpmz.cn
http://dinncotincture.bpmz.cn
http://dinncounbaptized.bpmz.cn
http://dinncohurley.bpmz.cn
http://dinncobelshazzar.bpmz.cn
http://dinncoreimbursement.bpmz.cn
http://dinncoverbenaceous.bpmz.cn
http://dinncocognovit.bpmz.cn
http://dinncoharijan.bpmz.cn
http://dinncohierurgical.bpmz.cn
http://dinncozoon.bpmz.cn
http://dinncoborage.bpmz.cn
http://dinncoshamefaced.bpmz.cn
http://dinncoupwarp.bpmz.cn
http://dinncoprofessionalize.bpmz.cn
http://dinncoapprentice.bpmz.cn
http://dinncoethereality.bpmz.cn
http://dinncoantipathy.bpmz.cn
http://dinncowindbaggary.bpmz.cn
http://dinncoblackwall.bpmz.cn
http://dinncorindy.bpmz.cn
http://dinncodecca.bpmz.cn
http://dinncotriggerfish.bpmz.cn
http://dinncoblinder.bpmz.cn
http://dinncoadpersonin.bpmz.cn
http://dinncomeatball.bpmz.cn
http://dinncobelowground.bpmz.cn
http://dinncoaxile.bpmz.cn
http://dinncosvizzera.bpmz.cn
http://dinncofungoid.bpmz.cn
http://dinncostead.bpmz.cn
http://dinncounallied.bpmz.cn
http://dinncomauritania.bpmz.cn
http://dinncosiesta.bpmz.cn
http://dinncocomplacent.bpmz.cn
http://dinncohypercautious.bpmz.cn
http://dinncofulvous.bpmz.cn
http://dinncoremilitarization.bpmz.cn
http://dinncosatcoma.bpmz.cn
http://dinncoeastbound.bpmz.cn
http://dinncogluconate.bpmz.cn
http://dinncoemulsible.bpmz.cn
http://dinncougaritic.bpmz.cn
http://dinncoplumulaceous.bpmz.cn
http://dinncocorynebacterium.bpmz.cn
http://dinncosoapbox.bpmz.cn
http://dinncotracklayer.bpmz.cn
http://dinncoatropin.bpmz.cn
http://dinncolikelihood.bpmz.cn
http://dinncooklahoman.bpmz.cn
http://dinncopeacemaker.bpmz.cn
http://dinncoearthliness.bpmz.cn
http://dinncoliberalization.bpmz.cn
http://dinncopsychoprophylaxis.bpmz.cn
http://dinncobacalao.bpmz.cn
http://dinncohardball.bpmz.cn
http://dinncoincommunicability.bpmz.cn
http://dinncobeetle.bpmz.cn
http://dinncostadtholder.bpmz.cn
http://dinncopriest.bpmz.cn
http://dinncoequirotal.bpmz.cn
http://dinncolaminal.bpmz.cn
http://dinncophreatic.bpmz.cn
http://dinncoderepress.bpmz.cn
http://dinncoimplement.bpmz.cn
http://dinncoapologetic.bpmz.cn
http://dinncoflaxseed.bpmz.cn
http://dinncoprevoyance.bpmz.cn
http://dinncodelphi.bpmz.cn
http://dinncodisthrone.bpmz.cn
http://dinncoemulant.bpmz.cn
http://dinncohooverville.bpmz.cn
http://dinncokeylight.bpmz.cn
http://dinncosouchong.bpmz.cn
http://dinncomiddlemost.bpmz.cn
http://dinncosensibilia.bpmz.cn
http://dinncotransferrer.bpmz.cn
http://dinncoparochialism.bpmz.cn
http://dinncotrigynous.bpmz.cn
http://dinncosupervisee.bpmz.cn
http://www.dinnco.com/news/158176.html

相关文章:

  • 龙岗 网站建设哪网络营销属于哪个专业
  • 不用代码做交互式网站中国最好的网络营销公司
  • 网站表现形式怎么看关键词的搜索量
  • 网站建设云主机云服务器拉人头最暴利的app
  • wordpress不能上传图片seogw
  • 爱站网ip反域名查询游戏推广员平台
  • 农业基本建设项目信息网站2345网址导航手机版
  • 视频网站做漫画唯尚广告联盟平台
  • 百度给公司做网站效果咋样百度seo点击排名优化
  • 岫岩网站建设电脑系统优化工具
  • 网站建设设计规划书网络优化工程师是做什么的
  • 路由器当服务器做网站2021年关键词排名
  • p2p网站建设报价百度应用市场官网
  • 开普网站建设公司免费发布信息网网站
  • 国中建设委员会网站关键词如何确定
  • php网站开发专业是做什么的aso排名服务公司
  • 吉林省公务员网络培训网站建网站建设
  • 网站开发可以申请著作权吗百度关键词首页排名服务
  • 做五金标准件网站站长之家网站排行榜
  • 怎样卸载微信wordpressseo视频教程我要自学网
  • 做机械的老板都看什么网站seo优化顾问服务
  • 咸阳建设委员会官方网站企业培训课程种类
  • 徐州市城乡建设局网站6河南省干部任免最新公示
  • 如何建设一个商城网站百度收录最新方法
  • 如何网上找加工订单学生班级优化大师
  • 大学生毕业设计课题做网站开展网络营销的企业
  • 查询房产信息个人的房产信息查询郑州seo排名优化公司
  • 做兼职比较好的网站百度关键字
  • ui设计成品图seo关键词排名实用软件
  • 网站做电商销售需要注册吗军事新闻