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

加强版十六章视频读写

VideoCapture capture(0)用来打开系统摄像头



#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main(int argv, char** argc) {
    VideoCapture capture(0);
       if (!capture.isOpened()) {
           printf("0");
        }
       namedWindow("frame", WINDOW_AUTOSIZE);

       Mat frame;
       while (true) {
           bool ret = capture.read(frame);
           if (!ret)break;
           imshow("ret", frame);
           char c = waitKey(50);
           if (c == 27) {
               break;
           }
       }
       waitKey(0);
           destroyAllWindows();
}
读取摄像头



读取视频文件

获取帧数等信息

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main(int argv, char** argc) {
    //VideoCapture capture(0);
    VideoCapture capture("C:/newword/image/20.avi");
       if (!capture.isOpened()) {
           printf("0");
        }
       namedWindow("frame", WINDOW_AUTOSIZE);
       int fps = capture.get(CAP_PROP_FPS);
       int width = capture.get(CAP_PROP_FRAME_WIDTH);
       int heigh = capture.get(CAP_PROP_FRAME_HEIGHT);
       int num_of_frame = capture.get(CAP_PROP_FRAME_COUNT);
       printf("frame size(f=%d,w=%d,h=%d,m=%d)", fps, width, heigh, num_of_frame);
        

       Mat frame;
       while (true) {
           bool ret = capture.read(frame);
           if (!ret)break;
           imshow("ret", frame);
           char c = waitKey(50);
           if (c == 27) {
               break;
           }
       }
       waitKey(0);
           destroyAllWindows();
}



读取视频文件或摄像头,将读取视频的保存

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main(int argv, char** argc) {
    VideoCapture capture(0);
    //VideoCapture capture("C:/newword/image/20.avi");
       if (!capture.isOpened()) {
           printf("0");
        }
       namedWindow("frame", WINDOW_AUTOSIZE);
       int fps = capture.get(CAP_PROP_FPS);
       int width = capture.get(CAP_PROP_FRAME_WIDTH);
       int heigh = capture.get(CAP_PROP_FRAME_HEIGHT);
       int num_of_frame = capture.get(CAP_PROP_FRAME_COUNT);
       int type = capture.get(CAP_PROP_FOURCC);
       printf("frame size(f=%d,w=%d,h=%d,m=%d)", fps, width, heigh, num_of_frame);
        

       Mat frame;
       VideoWriter writer("C:/newword/image/232320.mp4", type, fps, Size(width, heigh), true);
       while (true) {
           bool ret = capture.read(frame);
           if (!ret)break;
           imshow("ret", frame);
           writer.write(frame);
           char c = waitKey(50);
           if (c == 27) {
               break;
           }
       }
       waitKey(0);
           destroyAllWindows();
}
 


http://www.kler.cn/a/459914.html

相关文章:

  • 高频java面试题
  • PostgreSQL的备份方式
  • 【详解】AndroidWebView的加载超时处理
  • 【机器学习】工业 4.0 下机器学习如何驱动智能制造升级
  • 【第二部分--Python之基础】03 容器类型的数据
  • 常见硬件及其对应的驱动模块列表
  • Oracle SqlPlus常用命令简介
  • SDL2音视频播放的常用API库
  • Redis字符串底层结构对数值型的支持常用数据结构和使用场景
  • 安装torch-geometric库
  • 正则表达式:高级应用与性能优化
  • uniapp使用ucharts组件
  • 21天掌握JavaWeb - 第17天:前端页面开发与集成测试
  • leetcode 热题100(78. 子集)dfs回溯 c++
  • #渗透测试#红蓝攻防#红队打点web服务突破口总结02
  • HTML——23. 锚点和空链接二
  • 单片机理论基础
  • InstructGPT:基于人类反馈训练语言模型遵从指令的能力
  • Hadoop HA安装配置(容器环境),大数据职业技能竞赛模块A平台搭建,jdk+zookeeper+hadoop HA
  • 牛津Meta最新!PartGen:基于多视图扩散模型的多模态部件级3D生成和重建!
  • 网络安全行业研究报告
  • XDOJ 767 哈弗曼树
  • VBA批量插入图片到PPT,一页一图
  • 【uniapp】APP内嵌webview消息传递
  • 计算机网络 (13)信道复用技术
  • SmartAIChain荣获重要认可