Qt:捕获图像而不保存 - QCameraImageCapture

Posted

技术标签:

【中文标题】Qt:捕获图像而不保存 - QCameraImageCapture【英文标题】:Qt: Capture image without saving - QCameraImageCapture 【发布时间】:2014-12-11 19:44:43 【问题描述】:

我正在为我正在进行的项目使用 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 创建的图像而不将其保存到我的机器上?我关心的唯一数据是函数计算所需的时间(以毫秒为单位),因此无需保存原始图像数据。

【问题讨论】:

【参考方案1】:

    确保缓冲区目标受支持:

    imageCapture.
      isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)
    

    如果有,设置缓冲目的地,缓冲格式和分辨率等。

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

【讨论】:

以上是关于Qt:捕获图像而不保存 - QCameraImageCapture的主要内容,如果未能解决你的问题,请参考以下文章

iOS:在相机预览期间捕获图像而不采取行动

捕获到缓冲 QT

在 ResearchKit 中捕获皮疹的图像

捕获图像而不将其存储到内部/外部存储

如何在 Visual Studio 中使用 QImage 而不制作 Qt 项目?

Qt OpenCV从捕获帧写入视频,不保存