我在使用OpenCV和QCamera参与我正在进行的项目之间挣扎。
基本上我希望用户输入他们想要捕获的帧数,然后摄像机将使用我用CUDA和CPU实现编写的高斯滤波器来获取该数量的图像。
然后返回数据并将其放入图表中,以便分析性能差异。
我已经设置了大部分应用程序,但是我在最后的障碍中挣扎,我创建了一个QCameraViewFinder
,QCameraImageCapture
和QCamera
对象。在我的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为单位的时间,因此不需要保存原始图像数据。
答案 0 :(得分:3)
确保支持缓冲目标:
imageCapture.
isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)
如果是这样,请设置缓冲区目的地,缓冲区格式和分辨率等。
最后,在连接到imageAvailable(int, const QVideoFrame &)
信号的插槽中接收捕获的帧。