/************************************************************************************************************************ File Description: [1]The entry point of the console application [2]Video Division for Panoramic image stitching Development Environment: VS2012+STL+Win10+OpenCv32 Modification Time: 2018.3.29 Author: September ************************************************************************************************************************/ #include <iostream> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace std; using namespace cv; /************************************************************************************************************************** Model Description: The entry point of the console application ***************************************************************************************************************************/ int main() { std::string sourceVideoPath = "4K.avi"; //【1】原始视频 std::string outputVideoPathL = "leftVideo.avi"; //【2】左边的切分视频 std::string outputVideoPathR = "rightVideo.avi"; //【3】右边的切分视频 cv::VideoCapture inputVideoCap(sourceVideoPath); cv::Mat sourceVideoF; cv::Mat outputVideoL(900,1000,CV_8UC3); cv::Mat outputVideoR(900,1000,CV_8UC3); inputVideoCap>>sourceVideoF; std::cout<<sourceVideoF.size().height<<"=============="<<sourceVideoF.size().width<<std::endl; cv::VideoWriter outVideoWriterL; cv::VideoWriter outVideoWriterR; cv::Size videoResolution = cv::Size(1000,900); outVideoWriterL.open(outputVideoPathL,-1,25.0,videoResolution,true); outVideoWriterR.open(outputVideoPathR,-1,25.0,videoResolution,true); int iCount = 0; while (iCount<120) { iCount++; inputVideoCap>>sourceVideoF; for(int h=0;h<sourceVideoF.size().height;h++) { for(int w=0;w<sourceVideoF.size().width;w++) { if(w<1000) { outputVideoL.at<Vec3b>(h,w)[0] = sourceVideoF.at<Vec3b>(h,w)[0]; outputVideoL.at<Vec3b>(h,w)[1] = sourceVideoF.at<Vec3b>(h,w)[1]; outputVideoL.at<Vec3b>(h,w)[2] = sourceVideoF.at<Vec3b>(h,w)[2]; } if(w>600) { outputVideoR.at<Vec3b>(h,w-600)[0] = sourceVideoF.at<Vec3b>(h,w)[0]; outputVideoR.at<Vec3b>(h,w-600)[1] = sourceVideoF.at<Vec3b>(h,w)[1]; outputVideoR.at<Vec3b>(h,w-600)[2] = sourceVideoF.at<Vec3b>(h,w)[2]; } }//for w }//for h cv::imshow("outputVideoPathL",outputVideoL); cv::imshow("outputVideoPathR",outputVideoR); //cv::imshow("sourceVideoF",sourceVideoF); outVideoWriterL<<outputVideoL; outVideoWriterR<<outputVideoR; cv::waitKey(1); } return 0; }
Video Division with using OpenCv
最新推荐文章于 2024-03-12 15:52:55 发布
