视频的输入和输出

视频可以理解为一段连续的图片数据,OpenCV里可以很简单的通过两个类实现视频的输入和输出

VideoCapture,VideoWriter


VideoCapture可以走文件或者摄像头捕获图片数据然后装入cv::Mat数据结构里面

// videoreadwrite.cpp: 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "opencv2/opencv.hpp"

int main()
{
    // 从摄像头捕捉图像
    //cv::VideoCapture vC(0);
    //while (true) {
    //    cv::Mat frame;
    //    vC >> frame;
    //    cv::imshow("frame",frame);
    //    cv::waitKey(1);
    //}

    // 从视屏文件捕捉图像显示
    //cv::VideoCapture vC("vtest.avi");
    //while (true) {
    //    cv::Mat frame;
    //    vC >> frame;
    //    cv::imshow("frame", frame);
    //    cv::waitKey(1);
    //}

    // 视屏写
    cv::VideoCapture vC(0);
    int frame_width = vC.get(CV_CAP_PROP_FRAME_WIDTH);
    int frame_height = vC.get(CV_CAP_PROP_FRAME_HEIGHT);

    cv::VideoWriter vW("v.avi", CV_FOURCC(‘M‘, ‘J‘, ‘P‘, ‘G‘), 10, cv::Size(frame_width, frame_height));
    while (true) {
        cv::Mat frame;
        vC >> frame;
        cv::imshow("frame",frame);
        vW.write(frame);
        char c = (char)cv::waitKey(25);
        if (c == 27)
            break;
    }
    vC.release();
    vW.release();

    cv::destroyAllWindows();

    return 0;
}

输入数据:从摄像头捕获,只需要构造VideoCapture时候填上摄像头索引值,如果只有一个摄像头填0即可,如果走文件读取就填写视频文件路径,构造好对象后只需要利用重载了的>>双箭头每次输出一张图片数据到cv::Mat对象里面即可

输出数据:够着一个VideoWrite然后利用write函数写一张一张图片数据即可

原文地址:https://www.cnblogs.com/zzatp/p/9132615.html

时间: 2024-08-07 17:26:59

视频的输入和输出的相关文章

AVCaptureDevice 的输入与输出

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 原文链接:http://blog.csdn.net/shidongdong2012/article/details/21703251 0.媒体采集的几个东西.这里所需要明白的是,在这个流程中,这里会存在几个对象: a.AVCaptureDevice.这里代表抽象的硬件

Java输入及输出处理(I/O流)

IO流的分类: 按流向分类:输入流.输出流按操作对象分类: 字节流.字符流按功能分类: 节点流.处理流 Input 输入Output 输出Java.io.File类,文件输入输出类 字节流和字符流: 1,字节流InputStream(读),OutputStream(写).2,字符流:Reader(读),Writer(写).基本的读写操作方式:因为数据通常都以文件形式存在.所以就要找到 IO 体系中可以用于操作文件的流对象.通过名称可以更容易获取该对象.因为 IO 体系中的子类名后缀绝大部分是父类

【Python基础】python控制台输入、输出

python控制台输入.输出 1.输出 简单输出 print("我是简单的字符串输出") 控制台运行结果 我是简单的字符串输出 格式化输出 age=18 print("我今年%d岁"%age) age+=1 print("我今年%d岁"%age) age+=1 print("我今年%d岁"%age) 控制台打印结果: 我今年18岁 我今年19岁 我今年20岁 常用格式化符号: 格式符号 转换 %c 字符 %s 等同于str()

python入门(6)输入和输出

输出 >>> print 'hello, world' >>> print 'The quick brown fox', 'jumps over', 'the lazy dog' print会依次打印每个字符串,遇到逗号","会输出一个空格,因此,输出的字符串是这样拼起来的: >>> print 300 300 >>> print 100 + 200 300 因此,我们可以把计算100 + 200的结果打印得更漂亮

C++的输入和输出

C++是一种常用的编程语言.一个完整的程序至少要有一个输出,而我们也经常需要在程序内进行大量输入和输出.所以今天,我和大家谈一谈输入和输出. 1.cin和cout.可以连续输入,使用流(>>).有专门的输出的换行"endl". cin>>a>>b; cout<<"asdasdasd"<<endl; 2.scanf和printf.scanf和printf虽然需要占位符,不是很方便,而且容易因为系统影响在评测时

调用 get(fgetc) 和 putc(fputc) 函数进行输入、输出

当成功地打开文件后,接下来的事情就是对文件进行输入或输出操作,最简单的是调用 getc(或 fgetc) 和 putc(或 fputc) 函数进行字符的输入和输出. 1.调用 putc(或 fpuct) 函数输出一个字符 putc 函数的调用形式如下: putc(ch, fp); 这里 ch 是待输出的某个字符,它可以是一个字符常量,也可以是一个字符变量:fp 是文件指针.putc(ch, fp) 的功能是将字符 ch 写到文件指针 fp 所指的文件中去.如果输出成功,putc 函数返回所输出的

CString中Format函数与格式输入与输出

CString中Format函数与格式输入与输出 Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用: 格式化字符串forma("%d",12)意思是将一个整形的格式化的字符(我认为是保持其形状不变) 1).格式说明总是以%字符开始,以下是不同类型数据的格式方式%号后的说明: d输出带符号十进制数 o输出无符号八进制数 x输出无符号十六进制数 u输出无符号数 c输出单个字符 s输出一串字符 f输出实数(6位小数) e以指数形式输出实数 g选用f与e格式中

c++文件输入输出流fstream,对输入&gt;&gt;和输出&lt;&lt;重载

1. fstream 继承自iostream --> 要包含头文件#include<fstream> 2. 建立文件流对象 3. 打开文件夹 4. 测试是否打开成功 5. 进行读写操作 6. 关闭文件 #include<iostream> #include<fstream> using namespace std; int main(){ ifstream ifile; ofstream ofile; ifile.open("d:\\fileIn.txt

C++ Primer Plus 第17章 输入,输出和文件

第17章 输入.输出和文件 1.当到达输入语句时,他将刷新输出缓冲区中当前所有的输出 2.streambuf类 提供了对缓冲区的各种操作 ios_base类表示流的一般特征 ios类基于ios_base,包含了一个指向streambuf对象的指针 ostream类从ios派生,提供可输出方法 istream类从ios派生,提供可输入方法 iostream类基于ostream和istream,继承了输入和输出方法 3.包含iostream则自动创建了8个流对象 cin 标准输入 wcin 宽字符流