Qt5::QCamera查询和设置摄像头的分辨率和帧率
查询摄像头支持分辨率的APIQCamera::supportedViewfinderResolutions()查询摄像头支持帧率的APIQCamera::supportedViewfinderFrameRateRanges()设置摄像头采集分辨率和帧率的APIvoid setViewfinderSettings(const QCameraViewfinderSetti...
·
查询摄像头支持分辨率的API
QCamera::supportedViewfinderResolutions()
查询摄像头支持帧率的API
QCamera::supportedViewfinderFrameRateRanges()
设置摄像头采集分辨率和帧率的API
void setViewfinderSettings(const QCameraViewfinderSettings &settings);
这个API可以设置摄像头帧率、比例、分辨率、格式的类
使用注意事项
查询和设置摄像头分辨率时,需要在摄像头启动后调用;即在调用QCamera::start()后, 在调用setViewfinderSettings才生效。
但是摄像头支持的分辨率、帧率、采样格式和比例之间是有相关联的;实际上摄像头每个分辨率都有其对应的帧率和格式;并不是单一性的。比如我的摄像头支持如下
分辨率:
QSize(160, 120); QSize(176, 144);QSize(320, 240);QSize(352, 288);QSize(640, 480);QSize(1280, 720)
帧率:
max rate = 5 min rate = 5
max rate = 10 min rate = 10
max rate = 15 min rate = 15
max rate = 30 min rate = 30
如果我设置分辨率为1280*720,帧率为30,则采集失败;
可以调用下面API查询其对应关系
QList<QCameraViewfinderSettings> supportedViewfinderSettings
代码如下
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
camera=new QCamera(0);//摄像头
viewfinder=new QCameraViewfinder(this);//取景器
QObject::connect(camera, SIGNAL(imageCaptured(int,QImage)), this, SLOT(displayImage(int,QImage)));
camera->setCaptureMode(QCamera::CaptureStillImage);
camera->setViewfinder(viewfinder);
camera->start(); //启动摄像头
//获取摄像头支持的分辨率、帧率等参数
QList<QCameraViewfinderSettings > ViewSets = camera->supportedViewfinderSettings();
int i = 0;
qDebug() << "viewfinderResolutions sizes.len = " << ViewSets.length();
foreach (QCameraViewfinderSettings ViewSet, ViewSets) {
qDebug() << i++ <<" max rate = " << ViewSet.maximumFrameRate() << "min rate = "<< ViewSet.minimumFrameRate() << "resolution "<<ViewSet.resolution()<<\
"Format="<<ViewSet.pixelFormat()<<""<<ViewSet.pixelAspectRatio();
}
//设置摄像头参数
camera->setViewfinderSettings(ViewSets[1]);
}
Widget::~Widget()
{
delete ui;
}
void Widget::displayImage(int ,QImage image)
{
image=image.convertToFormat(QImage::Format_RGB888);
ui->label->setPixmap(QPixmap::fromImage(image));
}
更多推荐



所有评论(0)