zoukankan      html  css  js  c++  java
  • 实现读入一个彩色视频文件并以灰度格式输出这个视频文件,学习opencv例2-10

    #include "cv.h"
    #include "highgui.h"
    int main(int argc,char* argv[]){ //书本中的main没有定义为int返回类型,就会报错:c++默认不支持int
    CvCapture* capture = 0;
    capture = cvCreateFileCapture("p.avi");//p.avi直接存放在当前cpp文件所在的文件夹下,所有不用写路径,否则如:D:\sandy\visual studio 2010\Projects\video\video\p.avi
    if(!capture) return -1;
    IplImage *bgr_frame = cvQueryFrame(capture);

    double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
    CvSize size =cvSize(
    (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH),
    (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT)
    );
    CvVideoWriter *writer=cvCreateVideoWriter("d:\shengcheng.avi",CV_FOURCC('M','J','P','G'),fps,size);//把CV_FOURCC('M','J','P','G')改为-1,就在d盘生成一个shengcheng.avi文件了,我也没搞懂为什么
    IplImage* logpolar_frame =cvCreateImage(size,IPL_DEPTH_8U,3);

    while((bgr_frame = cvQueryFrame(capture))!=NULL){
    cvLogPolar(bgr_frame,logpolar_frame,
    cvPoint2D32f(bgr_frame->width/2,
    bgr_frame->height/2),
    40,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS);
    cvWriteFrame(writer,logpolar_frame);
    }
    cvReleaseVideoWriter(&writer);
    cvReleaseImage(&logpolar_frame);
    cvReleaseCapture(&capture);
    return(0);
    }

    原视频:

    生成视频:

  • 相关阅读:
    建表关系
    设计模式-策略模式
    设计模式-适配器模式
    在线操作word和在线预览查找的资料记录
    Elasticsearch 使用-安装
    12-factors
    Kafka 使用-安装
    Apache Zookeeper 使用-安装
    Java 使用-安装
    设计模式-模板方法模式
  • 原文地址:https://www.cnblogs.com/beihaidao/p/4836640.html
Copyright © 2011-2022 走看看