生成QT打开摄像头的代码 但不要使用opencv
时间: 2023-05-27 09:07:12 浏览: 100
这是一个简单的Qt程序,可以打开计算机上连接的摄像头:
```c++
#include <QCamera>
#include <QCameraViewfinder>
#include <QCameraImageCapture>
#include <QWidget>
#include <QVBoxLayout>
#include <QPushButton>
class CameraWidget : public QWidget
{
Q_OBJECT
public:
CameraWidget(QWidget *parent = nullptr) : QWidget(parent)
{
// 创建相机对象
camera = new QCamera(this);
// 创建取景器对象,用于显示相机捕捉的图像
viewfinder = new QCameraViewfinder(this);
viewfinder->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
// 创建图像捕捉对象,用于捕捉相机拍摄的图像
imageCapture = new QCameraImageCapture(camera, this);
// 创建布局管理器,将取景器和按钮组合在一起
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(viewfinder);
// 创建按钮,用于捕捉图像
QPushButton *captureButton = new QPushButton(tr("Capture"), this);
layout->addWidget(captureButton);
setLayout(layout);
// 当按钮被点击时,捕捉图像
connect(captureButton, &QPushButton::clicked, this, &CameraWidget::captureImage);
// 将相机设置为取景器的源
camera->setViewfinder(viewfinder);
// 开启相机
camera->start();
}
private slots:
void captureImage()
{
// 捕捉一张图像
imageCapture->capture();
}
private:
QCamera *camera;
QCameraViewfinder *viewfinder;
QCameraImageCapture *imageCapture;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建摄像头窗口
CameraWidget cameraWidget;
cameraWidget.show();
// 运行主循环
return app.exec();
}
#include "main.moc"
```
阅读全文