[英]Threading problem in OpenCV imwrite in C++
我正在做一个执行以下操作的应用程序:
现在,我有一个 while 循环
vector<string> arrCameraSources = {
"rtsp://10.0.0.1/",
"rtsp://10.0.0.2/",
"rtsp://10.0.0.3/"
};
ClsStitch objStitch;
ClsCameraStreamer cam(arrCameraSources);
//Mat left, right, center;
Mat frame;
Size sSize(2688, 1500);
while (waitKey(20) != 27)
{
for (int i = 0; i < arrCameraSources.size(); i++)
{
//Pop frame from queue and check if the frame is valid
if (cam.mQueue[i]->try_pop(frame))
{
switch(i) {
case(0):
imgRight = frame;
break;
case(1):
imgCenter = frame;
break;
case (2):
imgLeft = frame;
break;
}
cam.mQueue[i]->clear();
}
};
if (imgLeft.empty() || imgRight.empty() || imgCenter.empty())
{
//cout << "Empty Images" << endl;
continue;
}
else {
Mat mStitched = objStitch.StitchFrames(homographyLeftCenter, homographyFinal, imgRight, imgCenter, imgLeft, cntFrames, map1, map2, boolUndistort);
sprintf_s(strPathName, "%06d.jpg", cntFrames);
imwrite(strPathName, mStitched);
}
};
}
拼接过程每帧大约需要 80 毫秒,我想将其降低到每帧不到 40 毫秒,所以我想使用线程来解决这个问题。 如果您能帮助我使用线程缝合图像并将 output 作为图像保存到我的硬盘中,我将不胜感激。
PS:拼接算法工作正常,我不需要任何帮助。 PS:我需要所有来自相机的25pfs,请不要告诉我为什么需要它们,我应该只保存更少的帧,我的问题需要全部拥有它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.