gpt4 book ai didi

opencv - 如何使用事件相机流在 opencv 中绘制?

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:32 24 4
gpt4 key购买 nike

我正在尝试制作类似这样的东西:https://www.youtube.com/watch?v=D2Kb3ryfGNc

我成功检测到激光位置,但现在我不知道如何绘制激光所在的位置?

我是否需要在一帧中绘制激光所在位置的线条并将其添加到相机流帧以确保绘制线条?

最佳答案

事情是这样的——当我们使用 openCV Mat 对象流式传输连续视频时,它会一帧接一帧地显示,因此当收到第 (n+1) 帧时,第 n 帧的信息会丢失。

您需要 2 个 Mat 对象 - 一个用于流式传输相机(比如 Mat_cam),另一个用于绘制激光轨迹(Mat_traj)。 Mat_cam 将用于逐帧跟踪激光位置,使用任何标准颜色阈值算法。甚至视频也说激光应该很亮,这意味着 jimez86 可能使用白色阈值,然后是最大的 Blob 定位。

当在第 n 帧接收到新的激光位置时,在 Mat_traj 上画一个相应的圆。当接收到下一帧时,Mat_cam 将被更新并且它将有一个新的激光位置,但是 Mat_traj 将是相同的,因为它不会在每次“for”循环迭代时被清除/刷新,因此它将包含整个弹道。使用加权加法添加 Mat_traj 和 Mat_cam 将为您提供所需的结果。遵循以下算法:

Mat Mat_traj(640,480,CV_8UC1,Scalar(0)),Mat_cam,Mat_res;
VideoCapture cam(0);
for(;;)
{
cam>>Mat_cam;
Point laserCentre=getLaserCentre(Mat_cam);//you'll be defining this function;
drawCircle(Mat_traj,laserCentre);
addWeighted(Mat_cam,Mat_traj,other_params,Mat_res);
imshow("out",Mat_res);
waitKey(10);
}

关于opencv - 如何使用事件相机流在 opencv 中绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36606735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com