在QT Creator中,我们如何从相机中过滤图像。我在谷歌上搜索了很多,但没有找到合适的解决方案。以下是我的代码。
mCamera = new QCamera;
mViewfinder = new QCameraViewfinder;
mLayout = new QVBoxLayout(ui->graphicsView);
mLayout->addWidget(mViewfinder);
mCamera->setViewfinder(mViewfinder);
mViewfinder->show();
mCamera->start();
我在像下面这样的QCamera中的构造函数参数中尝试了QCamera::FrontFace和QCamera::BackFace
mCamera = new QCamera(QCamera::FrontFace);
和
mCamera = new QCamera(QCamera::BackFace );
但两者没有区别。在Python 中
video=cv2.flip(self.frame,1)
将解决该问题,知道如何解决这个问题吗。。我正在使用Windows 10
QCamera::FrontFace和 QCamera::BackFace创建QCameraImageCapture并连接到其imageCaptured((信号。 文档显示镜像(bool horizontal=false,bool vertical=true( 返回图像的镜像,在水平和/或垂直方向上镜像,具体取决于水平和垂直设置为true还是false。 更新: 我找到了相机,测试了代码,意识到我忘记了一件重要的事情。您需要使用QCameraImageCapture捕捉图像的计时器。 创建QTimer并连接到 然后启动计时器。要显示翻转的图像,您可以使用带有auto imageCapture = new QCameraImageCapture( mCamera );
connect(imageCapture, &QCameraImageCapture::imageCaptured, [&](int id, const QImage &preview){
QImage flipped = preview.mirrored();
// do what you want with flipped image
})
QTimer::timeout()
信号:connect (&timer, &QTimer::timeout, [&](){
camera->searchAndLock();
imageCapture->capture();
camera->unlock();
});
label->setPixmap(QPixmap::fromImage(flipped))
方法的QLabel类。
Hai我根据@Allocse的回答及其对我的工作更改了代码我的完整代码将是
mCamera = new QCamera;
mCamera->start();
imageCapture = new QCameraImageCapture( mCamera );
connect (&timer, &QTimer::timeout, [&](){
mCamera->searchAndLock();
imageCapture->capture();
mCamera->unlock();
});
connect(imageCapture, &QCameraImageCapture::imageCaptured, [&](int id, const QImage &preview){
QImage flipped = preview.mirrored(true,false);
ui->videoFrame->setPixmap(QPixmap::fromImage(flipped));
});
timer.start();
注意:-mCamera和imageCapture应该在类分离中声明