learning opencv3_2-11_写入AVI文件

一个完整的读取彩色视频并转换为对数极坐标视频的程序

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

//
//void help(char** argv ) {
//	std::cout << "\n"
//	<< "Read in a video, write out a log polar of it\n"
//	<< argv[0] <<" <path/video> <paht/video_output>\n"
//	<< "For example:\n"
//	<< argv[0] << " ../tree.avi ../vout.avi\n"
//	<< "\nThen read it with:\n ./example_02-10 ../vout.avi\n"
//	<< std::endl;
//}


int main(int argc, char** argv) {

    //if (argc != 3) {
    //	help(argv);
    //	return 0;
    //}


    cv::namedWindow("Example 2-11", cv::WINDOW_AUTOSIZE);
    cv::namedWindow("Log_Polar", cv::WINDOW_AUTOSIZE);

    // ( Note: could capture from a camera by giving a camera id as an int.)
    //

    cv::VideoCapture capture("C:\\Users\\oh_clm\\Videos\\Captures\\test.mp4");
    double fps = capture.get(cv::CAP_PROP_FPS);
    cv::Size size(
        (int)capture.get(cv::CAP_PROP_FRAME_WIDTH),
        (int)capture.get(cv::CAP_PROP_FRAME_HEIGHT)
    );

    cv::VideoWriter writer;
    writer.open("C:\\Users\\oh_clm\\Desktop\\LearningOpenCV3\\Learning-OpenCV-3_examples-master\\test_01.avi",cv::CAP_OPENCV_MJPEG, fps, size);

    cv::Mat logpolar_frame, bgr_frame;

    for (;;) {

        capture >> bgr_frame;
        if (bgr_frame.empty()) break; // end if done

        cv::imshow("Example 2-11", bgr_frame);

        cv::logPolar(
            bgr_frame, // Input color frame
            logpolar_frame, // Output log-polar frame
            cv::Point2f( // Centerpoint for log-polar transformation
                bgr_frame.cols / 2, // x
                bgr_frame.rows / 2 // y
            ),
            40, // Magnitude (scale parameter)
            cv::WARP_FILL_OUTLIERS // Fill outliers with 'zero'
        );

        cv::imshow("Log_Polar", logpolar_frame);

        writer << logpolar_frame;

        char c = cv::waitKey(10);

        if (c == 27) break; // allow the user to break out

    }

    writer.release();
    capture.release();

}

参照书本代码,以及参考了csdn上的一些文章。
写的很好的一篇:https://blog.csdn.net/weixin_48524215/article/details/120392341?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163871170016780271988970%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163871170016780271988970&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-120392341.first_rank_v2_pc_rank_v29&utm_term=opencv3+%E5%86%99%E5%85%A5AVI%E6%96%87%E4%BB%B6&spm=1018.2226.3001.4187

另一篇参考链接:https://blog.csdn.net/qq_33831881/article/details/106093304?ops_request_misc=&request_id=&biz_id=102&utm_term=opencv3%20%E5%86%99%E5%85%A5AVI%E6%96%87%E4%BB%B6&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-3-106093304.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

几个问题;
1、CV_FOURCC(‘M’,‘J’,‘P’,‘G’)用cv::CAP_OPENCV_MJPEG代替
2、cv::CAP_PROP_FPS代替CV_CAP_PROP_FPS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

躺躺11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值