我目前正在使用Python并使用OpenCV的视频捕捉和cv.imshow来显示视频。我试图在这个视频上叠加,所以我可以使用cv.line,cv.rectangle等绘制它。每次帧更改它清除绘制的图像所以我希望我是否要放置一个叠加除此之外,它还允许我在视频上绘制多个图像而不清除。有什么建议?谢谢你!
答案 0 :(得分:0)
你需要的是2个Mat对象 - 一个用于流式摄像机(比如Mat_cam),另一个用于保持叠加层(Mat_overlay)。
在主窗口上绘制时,将线条和Rect对象保存在Mat_overlay上,并确保它不受流式视频的影响
当接收到下一帧时,Mat_cam将被更新并且它将具有下一个视频帧,但Mat_overlay将是相同的,因为它不会被每次'for'循环迭代清除/刷新。使用加权加法添加Mat_overlay和Mat_cam将为您提供所需的结果。
答案 1 :(得分:0)
我不确定我是否正确理解了您的问题。我从您的问题中得到的是您希望叠加层保留在您的框架上,从Videocapture流式传输,因为一个简单的解决方案是声明您的问题。 Mat_cam"(相机流变量)在循环外部用于捕获帧,以便" Mat_cam"每次循环时都不会释放变量。