硬件:
1.树莓派 2
2.树莓派相机
软件:
1. OpenCV 2.4.11
2. 用 C++ 编程
我有以下简单的代码,可以从相机捕获视频并将其显示在窗口中。
帧大小始终为 640 x 480,尝试更改帧宽度和高度(如注释行所示)没有帮助,它保持 640 x 480。
我正在寻找一种将框架宽度和高度从我的代码(而不是外壳)更改为 1920 x 1080 的方法。
如果可以从 OpenCV 或 V4l2 驱动程序完成,那就太好了
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char* argv[]) {
int rc = 0 ;
int device = 0 ;
Mat frame;
namedWindow( "Video", CV_WINDOW_AUTOSIZE ) ;
VideoCapture capture( device ) ;
if( capture.isOpened()) {
cout << "Frame size : " << capture.get(CV_CAP_PROP_FRAME_WIDTH) << " x " << capture.get(CV_CAP_PROP_FRAME_HEIGHT) << endl ;
//capture.set( CV_CAP_PROP_FRAME_WIDTH, 1920 ) ;
//capture.set( CV_CAP_PROP_FRAME_HEIGHT, 1080 ) ;
//capture.set( CV_CAP_PROP_FOURCC, CV_PROP('H','2','6','4')) ;
//capture.set( CV_CAP_PROP_FOURCC, CV_PROP('M','J','P','G')) ;
//capture.set( CV_CAP_PROP_FPS, 10 );
for( ; ; ) {
if( capture.read( frame )) {
imshow( "Video", frame );
if( waitKey( 1 ) == 27 ) {
cout << "Esc key pressed by the user" << endl ;
break ;
}
}
else {
rc = -1 ;
cout << "Cannot read frame from video stream" << endl ;
break ;
}
}
}
else {
rc = -1 ;
cout << "Cannot open the video device " << device << endl ;
}
return( rc ) ;
}