在我正在进行的项目中,我在使用 OpenCV 和 QCamera 之间左右为难。
基本上,我希望用户输入他们想要捕获的帧数,然后相机将应用我用 CUDA 和 CPU 实现编写的高斯滤波器来拍摄该数量的图像。
然后返回数据并将其放入图表中,以便我可以分析性能差异。
我已经设置了大部分应用程序,但我在最后一个障碍上挣扎,我创建了一个QCameraViewFinder
, QCameraImageCapture
and 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
而不将其保存到我的机器上?我关心的唯一数据是函数计算所需的时间(以毫秒为单位),因此不需要保存原始图像数据。
-
确保缓冲区目标受支持:
imageCapture.
isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)
如果是,请设置缓冲区目的地、缓冲区格式和分辨率等。
最后,在连接到的插槽中接收捕获的帧imageAvailable(int, const QVideoFrame &)
signal.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)