Opencv入门6(读取彩色视频并转换为对数极坐标视频)
源码如下:
#include <opencv2/opencv.hpp>
 #include <iostream>
 int main(int argc, char* argv[])
 {
 ? ? cv::namedWindow("Example2_11", cv::WINDOW_AUTOSIZE);
 ? ? cv::namedWindow("Log_Polar", cv::WINDOW_AUTOSIZE);
 ? ? cv::VideoCapture capture(argv[1]);
 ? ? 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(argv[2], CV_FOURCC('M', 'J', 'P', 'G'), fps, size);
 ? ? cv::Mat logpolar_frame, bgr_frame;
 ? ? for (;;) {
 ? ? ? ? capture >> bgr_frame;
 ? ? ? ? if (bgr_frame.empty())break;//end if done
 ? ? ? ? cv::imshow("Example2_11", bgr_frame);
 ? ? ? ? cv::logPolar(
 ? ? ? ? ? ? bgr_frame,
 ? ? ? ? ? ? logpolar_frame,
 ? ? ? ? ? ? cv::Point2f(
 ? ? ? ? ? ? ? ? bgr_frame.cols / 2,
 ? ? ? ? ? ? ? ? bgr_frame.rows / 2
 ? ? ? ? ? ? ),
 ? ? ? ? ? ? 40,
 ? ? ? ? ? ? //Input color frame//Output log-polar frame
 ? ? ? ? ? ? //Centerpoint for log-polar transformation//
 ? ? ? ? ? ? cv::WARP_FILL_OUTLIERS
 ? ? ? ? );
 ? ? ? ? //Magnitude(scale parameter)//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
 ? ? capture.release();
 }?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!