【问题标题】:Qt capture QCamera too darkQt 捕捉 QCamera 太暗
【发布时间】:2014-03-09 17:11:42
【问题描述】:

我在 Qt 中使用 opencv 摄像头支持来捕获图像,因为 Qt5.2 现在有 QCamera 和 QCameraImageCapture,我正在移植到它,代码非常简化。

但是拍摄的图像太暗,而 QCameraViewfinder 曝光的帧具有正确的亮度。唉,QWidget::grab() 在 QCameraViewfinder 上不起作用。

此外,相机演示代码的行为方式相同(更改“曝光补偿”对捕获的图像没有任何影响)。

关于这个问题的任何提示?我正在使用带有 USB 网络摄像头的 Ubuntu 64 位。

【问题讨论】:

  • 可能是图片格式不对。您是否仔细检查了您使用的相机的规格并确保它正确解释像素? Qt 可以处理很多图像格式,但它可能会自动分配错误的格式。
  • @phyatt:我尝试设置像素格式,但没有任何改变。当然,有很多变化,我没有尝试一切。奇怪的是 QCameraViewfinder 的显示效果很好。只是 capture() 失去亮度。
  • 我也有同样的问题。即使是示例应用程序也有这个问题。它显示得很好,但是当它捕获时,它显示的图像就像它没有白平衡一样。就像它在拍照前重置相机一样。
  • 看起来像 k/ubuntu 问题,windows 中的相同代码提供了出色的结果。也禁食。
  • @Nande:刚刚尝试过 Qt 5.4(在 Ubuntu 上)。还是有问题...

标签: qt video-capture capture


【解决方案1】:

看起来 Qt 从查看器中提取图像的方法是使用基于 QMediaBindableInterface 的另一个 QCameraXXX 类...

这显示了从相机中提取信息的示例。

https://qt-project.org/doc/qt-5.1/qtmultimedia/qcameraimagecapture.html#details

camera = new QCamera;

viewfinder = new QCameraViewfinder();
viewfinder->show();

camera->setViewfinder(viewfinder);

imageCapture = new QCameraImageCapture(camera);

camera->setCaptureMode(QCamera::CaptureStillImage);
camera->start();
//on half pressed shutter button
camera->searchAndLock();

//on shutter button pressed
imageCapture->capture();

//on shutter button released
camera->unlock();

然后要处理捕获图像,您可以连接到imageCaptured 信号,并且您可以使用QImage

https://qt-project.org/doc/qt-5.1/qtmultimedia/qcameraimagecapture.html#imageCaptured

希望对您有所帮助。

【讨论】:

  • 它仍然得到图像不平衡,我不知道为什么,它甚至发生在相机示例中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 2019-08-25
  • 2016-08-30
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多