Qt:无需保存即可捕获图像 - QCameraImageCapture

时间:2014-12-11 19:44:44

标签: c++ qt

我在使用OpenCV和QCamera参与我正在进行的项目之间挣扎。

基本上我希望用户输入他们想要捕获的帧数,然后摄像机将使用我用CUDA和CPU实现编写的高斯滤波器来获取该数量的图像。

然后返回数据并将其放入图表中,以便分析性能差异。

我已经设置了大部分应用程序,但是我在最后的障碍中挣扎,我创建了一个QCameraViewFinderQCameraImageCaptureQCamera对象。在我的while循环中,我调用以下代码:

do
    {
       imageCapture->capture();

       //cpu method call here

       // Emit the frame number from the thread back to GUI for update
       emit frameProcessed(QString::number(currFrame));

       currFrame++;
       frames--;
} while(frames > 0);

如何将imageCapture->capture创建的图像解压缩而不保存到我的计算机上?我唯一关心的数据是函数计算所用的以ms为单位的时间,因此不需要保存原始图像数据。

1 个答案:

答案 0 :(得分:3)

  1. 确保支持缓冲目标:

    imageCapture.
      isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)
    
  2. 如果是这样,请设置缓冲区目的地,缓冲区格式和分辨率等。

  3. 最后,在连接到imageAvailable(int, const QVideoFrame &)信号的插槽中接收捕获的帧。