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

威海网站优化推广企业网站建设入账

威海网站优化推广,企业网站建设入账,html5手机资讯网站模板,注册一个设计公司需要多少钱文章目录 opencv视频文件的读取#xff0c;处理与保存一、视频文件的读取#xff1a;1、cv::VideoCapture是OpenCV库中用于处理视频输入的类#xff0c;它提供了一种简单的方法来从摄像头#xff0c;视频文件、或图像序列中读取帧#xff1b;#xff08;1#xff09;打开… 文章目录 opencv视频文件的读取处理与保存一、视频文件的读取1、cv::VideoCapture是OpenCV库中用于处理视频输入的类它提供了一种简单的方法来从摄像头视频文件、或图像序列中读取帧1打开摄像头2打开视频文件3打开网络摄像头4打开图像序列 2、cv::VideoCapture类的常用方法1capture.get()用于获取视频的属性比如帧数、帧率等2capture.set(int propId, double value)用于设置视频的属性比如设置视频的帧率、帧大小等属性3capture.read(cv::Mat frame)用于读取视频的一帧将其存储在 cv::Mat 对象中4capture.release()用于释放 VideoCapture 对象所占用的资源一般在你已经完成了对视频流的操作后调用它 二、对视频帧进行处理三、保存处理后的视频1、cv::VideoWriter 是opencv中用于将图像帧序列保存为视频文件的类它可以将处理过的帧写入一个视频文件也可以将视频流输出到摄像头或网络1创建一个 cv::VideoWriter 对象 2、cv::VideoWriter类的常用方法1cv::VideoWriter::open()用于打开一个视频文件或设备以便写入视频帧2cv::VideoWriter::write()用于将一帧图像写入视频文件3cv::VideoWriter::isOpened()用于检查VideoWriter对象是否成功打开如果成功打开了视频文件或者设备该方法将返回true否则返回false4cv::VideoWriter::release()用于释放VideoWriter对象所占用的资源一般在你已经完成了对视频的写入操作后调用它 opencv视频文件的读取处理与保存 一、视频文件的读取 1、cv::VideoCapture是OpenCV库中用于处理视频输入的类它提供了一种简单的方法来从摄像头视频文件、或图像序列中读取帧 1打开摄像头 cv::VideoCapture capture(int index)参数解释 index打开指定编号的摄像头编号0表示默认摄像头如果你的计算机连接了多个摄像头你可以使用不同的编号来选择不同的摄像头 2打开视频文件 cv::VideoCapture capture(const std::string filename)参数解释 filename打开指定的视频文件你需要提供视频文件的路径和名称作为参数 3打开网络摄像头 cv::VideoCapture capture(const std::string apiKey, const std::string deviceId)参数解释 用于打开网络摄像头需要提供相应的API密钥和设备ID 4打开图像序列 cv::VideoCapture capture(const std::string pattern, int api)参数解释 用于打开图像序列需要提供文件名模式(通配符)和相应的API 2、cv::VideoCapture类的常用方法 1capture.get()用于获取视频的属性比如帧数、帧率等 capture.get(int propId)参数解释 propId是一个整数参数用于指定你想获取的属性类型cv::CAP_PROP_FRAME_COUNT获取视频的帧数cv::CAP_PROP_FPS获取视频的帧率每秒帧数cv::CAP_PROP_FRAME_WIDTH视频帧的宽度cv::CAP_PROP_FRAME_HEIGHT视频帧的高度 ) 示例 #include opencv2\opencv.hpp #include iostream #include demo.husing namespace cv; using namespace std;int main() {// 初始化一个cv::VideoCapture对象打开视频文件VideoCapture capture(C:\\cpp\\image\\cayenne.mp4);if (!capture.isOpened()) {std::cerr Error: 无法打开视频文件. std::endl;return -1;}// 调用cv::VideoCapture类的get()方法获取视频宽度高度帧数帧率int frameWidth capture.get(cv::CAP_PROP_FRAME_WIDTH);int frameHeight capture.get(cv::CAP_PROP_FRAME_HEIGHT);int frameCount capture.get(cv::CAP_PROP_FRAME_COUNT);double fps capture.get(cv::CAP_PROP_FPS);std::cout frame width: frameWidth std::endl;std::cout frame height: frameHeight std::endl;std::cout Number of Frames: frameCount std::endl;std::cout FPS: fps std::endl;capture.release(); // 释放VideoCapture对象 } 2capture.set(int propId, double value)用于设置视频的属性比如设置视频的帧率、帧大小等属性 capture.set(int propId, double value)参数解释 propId指定了你想设置的属性类型 value要设置的值 示例 cv::VideoCapture capture(0); // 打开默认摄像头if (!capture.isOpened()) {std::cerr Error: 无法打开摄像头. std::endl;return -1; }capture.set(cv::CAP_PROP_FRAME_WIDTH, 1280); capture.set(cv::CAP_PROP_FRAME_HEIGHT, 720); capture.set(cv::CAP_PROP_FPS, 30);capture.release(); // 释放VideoCapture对象 3capture.read(cv::Mat frame)用于读取视频的一帧将其存储在 cv::Mat 对象中 示例 cv::VideoCapture capture(video_file.mp4);if (!capture.isOpened()) {std::cerr Error: 无法打开视频文件. std::endl;return -1; }cv::Mat frame; capture.read(frame);// 在这里可以对 frame 进行处理capture.release(); // 释放VideoCapture对象 4capture.release()用于释放 VideoCapture 对象所占用的资源一般在你已经完成了对视频流的操作后调用它 二、对视频帧进行处理 循环遍历视频的每一帧可以在循环内部对每一帧进行处理在这里我注释掉了处理部分你可以根据需要添加各种图像处理操作比如滤波、边缘检测等 代码示例 #include opencv2\opencv.hpp #include iostream #include demo.husing namespace cv; using namespace std;int main() {// 打开视频文件VideoCapture capture(C:\\cpp\\image\\cayenne.mp4);// 检查视频是否成功打开if (!capture.isOpened()) {std::cerr Error: 无法打开视频文件. std::endl;return -1;}// 获取视频的帧数和帧率int frameCount capture.get(cv::CAP_PROP_FRAME_COUNT);double fps capture.get(cv::CAP_PROP_FPS);// 创建一个VideoWriter对象来保存处理后的视频cv::VideoWriter outVideo(outVideo.mp4, capture.get(CAP_PROP_FOURCC), fps, cv::Size(capture.get(cv::CAP_PROP_FRAME_WIDTH), capture.get(cv::CAP_PROP_FRAME_HEIGHT)));// 循环处理视频的每一帧for (int i 0; i frameCount; i) {cv::Mat frame;capture frame; // 读取一帧if (frame.empty()) {break;}// 在这里可以对frame进行处理比如进行滤波、边缘检测等// 例如cv::cvtColor(frame, frame, cv::COLOR_BGR2GRAY);// 将处理后的帧写入输出视频文件outVideo frame;}// 释放VideoCapture和VideoWriter对象capture.release();outVideo.release();std::cout 视频处理完成. std::endl; } 三、保存处理后的视频 1、cv::VideoWriter 是opencv中用于将图像帧序列保存为视频文件的类它可以将处理过的帧写入一个视频文件也可以将视频流输出到摄像头或网络 1创建一个 cv::VideoWriter 对象 函数原型 cv::VideoWriter writer(const String filename, int fourcc, double fps, Size frameSize, bool isColor true)参数解释 filename要保存的视频文件名或者设备地址 fourccFourCC编码指定视频编解码器的类型(cv::VideoWriter::fourcc(X,V,I,D)Xvid编解码器cv::VideoWriter::fourcc(M,J,P,G)MJPEG编解码器cv::VideoWriter::fourcc(M,P,4,V)MPEG-4编解码器cv::VideoWriter::fourcc(H,2,6,4)H.264编解码器 ) fps帧率即每秒显示的帧数 frameSize帧的大小可以通过cv::Size类指定 isColor指定保存的视频是否为彩色默认为true 2、cv::VideoWriter类的常用方法 1cv::VideoWriter::open()用于打开一个视频文件或设备以便写入视频帧 cv::VideoWriter::open(const String filename, int fourcc, double fps, Size frameSize, bool isColor true)参数解释参数和构造函数类似 filename要保存的视频文件名或者设备地址 fourccFourCC编码指定视频编解码器的类型(cv::VideoWriter::fourcc(X,V,I,D)Xvid编解码器cv::VideoWriter::fourcc(M,J,P,G)MJPEG编解码器cv::VideoWriter::fourcc(M,P,4,V)MPEG-4编解码器cv::VideoWriter::fourcc(H,2,6,4)H.264编解码器 ) fps帧率即每秒显示的帧数 frameSize帧的大小可以通过cv::Size类指定 isColor指定保存的视频是否为彩色默认为true 2cv::VideoWriter::write()用于将一帧图像写入视频文件 cv::VideoWriter::write(const Mat image)参数解释 image要写入视频的帧通常是一个cv::Mat对象 3cv::VideoWriter::isOpened()用于检查VideoWriter对象是否成功打开如果成功打开了视频文件或者设备该方法将返回true否则返回false 4cv::VideoWriter::release()用于释放VideoWriter对象所占用的资源一般在你已经完成了对视频的写入操作后调用它 示例 我们首先创建了一个 VideoWriter 对象指定了视频文件的名称、FourCC编码、帧率和帧大小。接着我们检查是否成功打开了文件。然后我们创建了一个红色的帧640x480 大小的纯红色图像并将其写入视频文件10次。最后我们释放了 VideoWriter 对象。 #include opencv2\opencv.hpp #include iostream #include demo.husing namespace cv; using namespace std;int main() {Demo demo;// 初始化一个cv::VideoCapture对象打开视频文件VideoCapture capture(C:\\cpp\\image\\cayenne.mp4);// 调用cv::VideoCapture类的get()方法获取视频宽度高度帧数帧率int frame_width capture.get(CAP_PROP_FRAME_WIDTH);int frame_height capture.get(CAP_PROP_FRAME_HEIGHT);int count capture.get(CAP_PROP_FRAME_COUNT);double fps capture.get(CAP_PROP_FPS);std::cout frame width: frame_width std::endl;std::cout frame height: frame_height std::endl;std::cout FPS: fps std::endl;std::cout Number of Frames: count std::endl;// 初始化一个cv::VideoWriter 对象保存处理后的视频文件// capture.get(CAP_PROP_FOURCC)获取原视频的编解码器// Size(frame_width, frame_height)原视频的宽高VideoWriter writer(C:\\cpp\\image\\test.mp4, capture.get(CAP_PROP_FOURCC), fps, Size(frame_width, frame_height), true);Mat frame;while (true) {// 读取视频的一帧将其存储在frame对象中capture.read(frame);// TODO: do something...// 对读取到的这帧图像做flip()翻转处理flip(frame, frame, 1);if (frame.empty()) {break;}// 显示这帧图像imshow(frame, frame);// 对这帧图像做色彩空间转换demo.colorSpace(frame);// 将这帧图像写入视频文件writer.write(frame);int c waitKey(1);if (c 27) { // 退出break;}}// releasecapture.release();writer.release(); } 做色彩空间转换 demo.colorSpace()函数如下 void Demo::colorSpace(Mat image) {Mat gray, hsv;// 转hsvcvtColor(image, hsv, COLOR_BGR2HSV);// 转灰度cvtColor(image, gray, COLOR_BGR2GRAY);// 显示这两张图imshow(HSV,hsv);imshow(GARY, gray);// 保存这两张图imwrite(C:\\cpp\\vs\\opencv\\hsv.png, hsv);imwrite(C:\\cpp\\vs\\opencv\\gray.png, gray);}
http://www.zqtcl.cn/news/169083/

相关文章:

  • 网站设计模板免费国庆图片制作小程序
  • 包头焦点网站建设郑州包装设计公司
  • 建行官方网站首页做跨境电商亏死了
  • 河北智能网站建设平台卖链接的网站
  • 网站建设简单点的服装搭配网站建设策划书
  • 哪一个军事网站做的比较好今天第四针最新消息
  • 黄页网站推广app软件查企业公司用什么软件
  • 网站设计机构培训全自动网页制作系统源码
  • 外贸网站建设收益深圳建设厅官网
  • 跟网站开发有关的内容东莞市生态环境局
  • dw软件做的东西怎么在网站用网站备案抽查通过
  • 重庆建设集团网站首页wordpress主题inn
  • 对京东网站建设的总结湖北做网站的
  • 杭州网站开发后端招郑州工装定制
  • 网站搭建论文filetype ppt 网站建设
  • 个人做营利性质网站会怎么样如何引用网站上的资料做文献
  • 新网站制作市场泰安做网站哪家好
  • 常熟苏州网站建设flash如何制作网站
  • 电商网站都是用什么做的网站服务器维护方案
  • 简述企业网站建设的流程手机怎么自己做网页
  • 网站备案信息管理呼图壁网站建设
  • 网站建设学习资料开发一套软件需要多少钱
  • 大庆网站设计衡阳seo网站推广
  • 基层科普网站建设的现状自己做的网站怎样链接数据库
  • 网站建设工程师的职位要求化妆品行业网站开发
  • 做海报有什么素材网站知乎什么样的蓝色做网站做好看
  • 餐饮网站建设网站wordpress优酷视频插件下载
  • 什么网站做广告效果好wordpress中文cms
  • seo与网站优化广州洲聚网站开发
  • 建一个自己用的网站要多少钱北京网站建设价格天