3路视频大于屏幕问题
来源:互联网 发布:豆瓣八组 知乎 编辑:程序博客网 时间:2024/06/07 22:41
#ifndef _DEBUG#pragma comment(lib,"opencv_core246")#pragma comment(lib,"opencv_highgui246")#pragma comment(lib,"opencv_imgproc246")#else#pragma comment(lib,"opencv_core246d")#pragma comment(lib,"opencv_highgui246d")#pragma comment(lib,"opencv_imgproc246d")#endif#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/objdetect/objdetect.hpp>#include <iostream>#include <vector>#include <stdio.h>using namespace cv;using namespace std;// 图像翻转(镜像) void ImageReversal(IplImage* imgsrc) { Mat img = imgsrc;int tempb,tempg,tempr;int height = img.rows;int width = img.cols;for (int y=1;y<height-1;y++){uchar* imgP=img.ptr<uchar>(y);for (int x=0;x<width/2;x++){tempb=imgP[3*x];tempg=imgP[3*x+1];tempr=imgP[3*x+2];imgP[3*x] = imgP[3*(width-x)];imgP[3*x+1] = imgP[3*(width-x)+1];imgP[3*x+2] = imgP[3*(width-x)+2];imgP[3*(width-x)] = (uchar)tempb;imgP[3*(width-x)+1] = (uchar)tempg;imgP[3*(width-x)+2] = (uchar)tempr;}}//cout << (getTickCount()-t)*1.0/getTickFrequency() << endl;waitKey(33);} //逆时针旋转图像degree角度(原尺寸)void rotateImage(Mat img, Mat img_rotate,int degree){//旋转中心为图像中心CvPoint2D32f center; center.x=float (img.cols/2.0+0.5);center.y=float (img.rows/2.0+0.5);//计算二维旋转的仿射变换矩阵float m[6]; Mat M( 2, 3, CV_32F, m );//Mat getRotationMatrix2D(Point2f center, double angle, double scale)M = getRotationMatrix2D(center, degree,1);//cv2DRotationMatrix( center, degree,1, &M);//void warpAffine(InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, const Scalar& borderValue=Scalar())//变换图像,并用黑色填充其余值warpAffine(img,img_rotate,M,img.size());//cvWarpAffine(img,img_rotate, &M,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,cvScalarAll(0) );}int main(int ac, char** av){CvCapture* capture0 = cvCreateCameraCapture( 1 ); CvCapture* capture1 = cvCreateCameraCapture( 0 ); //CvCapture* capture2 = cvCreateCameraCapture( 2 ); IplImage *frame0,*frame1,*frame2;int64 t=0;Mat frame0_Mat,frame1_Mat;Mat panorama_Mat(480*1.2,640*4.1,CV_8UC3);while (1){t = getTickCount();frame0 = cvQueryFrame( capture0 );frame1 = cvQueryFrame( capture1 );//frame2 = cvQueryFrame( capture2 );frame0_Mat = frame0;frame1_Mat = frame1;//两个图像融合为一个cv::Mat panorama_0(panorama_Mat,cv::Rect(0,15,frame0->width,frame0->height));frame0_Mat.copyTo(panorama_0);cv::Mat panorama_1(panorama_Mat,cv::Rect(frame1_Mat.cols-25,0,frame1_Mat.cols,frame1_Mat.rows));frame1_Mat.copyTo(panorama_1);cv::Mat panorama_2(panorama_Mat,cv::Rect(frame1_Mat.cols*2-25,0,frame1_Mat.cols,frame1_Mat.rows));frame1_Mat.copyTo(panorama_2);//rotateImage(frame1, frame1, 180); //ImageReversal(frame1);//cvShowImage("frame0",frame0);//cvShowImage("frame1",frame1);//cvShowImage("frame2",frame2);imshow("panorama_Mat",panorama_Mat);int key = cvWaitKey(33);if( key == 27 ) break;cout << (getTickCount()-t)*1.0/getTickFrequency() << endl;}cout << "EORROR" << endl;cvWaitKey(0);cvDestroyWindow("left");cvDestroyWindow("mid");cvDestroyWindow("right");return 0;}
0 0
- 3路视频大于屏幕问题
- IOS 大于3.2版本视频问题
- iphone4s 关于大于400M的视频无法拷贝的问题
- 视频做背景无法自适应屏幕的问题
- RenderTexture保存大于当前屏幕的图片
- 视频播放框架vitamio播放视频屏幕花屏的问题
- Android WebView 播放视频无法播放问题和视频适应屏幕大小
- Android中VideoView播放视频不能充满屏幕以及视频上的view与视频不同步显示的问题
- 视频播放屏幕旋转
- Android屏幕视频技巧
- 3个运算符优先级:. 大于->大于*
- JAVA读取大于ASCII码大于128的字符问题
- android自定义view继承linearLayout,view大小大于屏幕
- android 自定义的view长度大于屏幕宽度
- 自定义View高度大于屏幕高度显示不全解决方案
- 说一下视频播放跟随屏幕旋转,以及activity涉及到的周期问题
- 94.大于屏幕宽度的TableView上下拉刷新实现 大于屏幕宽度MJRefresh怎么实现刷新控件显示居中
- Mac下录制屏幕视频
- shell script
- log4j讲解
- java 从零开始,学习笔记之基础入门<Oracle_基础>(三十三)
- BindingFlags说明
- Java ClassLoader深入讲解
- 3路视频大于屏幕问题
- AIX HACMP ERROR: Invalid loopback or localhost address on node的解决办法
- ORACLE 中dbms_stats的使用
- 福尔摩斯的便携工具箱发布日志
- 新的放假规定,大年三十还得朝九晚五!
- java 作用域问题
- 对Linux内核栈的认识
- 关于 if (document.all) ... 判断是否为ie浏览器
- Oracle SQL优化 总结