#ifndef VIDEO_PROCESSOR_H#define VIDEO_PROCESSOR_H#include QObject#include QImage#include QCamera#include QCameraImageCaptureclass VideoProcessor public QObject Q_OBJECTpublic explicit VideoPro
#include "video_processor.h"
VideoProcessor::VideoProcessor(QObject *parent) : QObject(parent) { m_camera = new QCamera(this); m_imageCapture = new QCameraImageCapture(m_camera, this);
connect(m_imageCapture, SIGNAL(imageCaptured(int, const QImage&)), this, SLOT(processFrame(int, const QImage&)));
}
VideoProcessor::~VideoProcessor() { delete m_imageCapture; delete m_camera; }
void VideoProcessor::startCamera() { m_camera->start(); }
void VideoProcessor::processFrame(int requestId, const QImage& img) { emit frameProcessed(img); } 在主函数中,你可以这样调用VideoProcessor类:
#include
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv);
VideoProcessor videoProcessor;
QObject::connect(&videoProcessor, &VideoProcessor::frameProcessed, [](const QImage& frame) {
// 处理每一帧图像
// 在这里可以使用frame进行图像处理操作,如显示、保存等
});
videoProcessor.startCamera();
QEventLoop loop;
QObject::connect(&a, &QCoreApplication::aboutToQuit, &loop, &QEventLoop::quit);
return loop.exec();
原文地址: https://www.cveoy.top/t/topic/h6QF 著作权归作者所有。请勿转载和采集!