用Opencv实时画运动轨迹的思路

本文介绍了一种用OpenCV在编程中解决如何实现实时运动轨迹跟踪的方法。作者通过创建黑屏并用红色线条记录轨迹,待背景图像更新后贴合到背景上,从而克服了图像更新导致轨迹消失的问题。关键代码提示了RGB图像存储顺序为BGR。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编程时发现用cvcircle只能画出目标的当前位置,通过百度发现一种思路,目前正在实验中。。

你获取了手心位置当前的坐标以后用来做起点,再持续跟踪,把下一个手心坐标做终点画线,就这么一直画不就是运动轨迹了么
就是保存当前捕捉到的坐标a,然后下次捕捉到坐标b的时候用这对坐标画线,更新a坐标为b的值,再捕捉到下一坐标b画线,重复就行了
画线是用line函数啊,你ciecle当然是一个点了。另外不用数组存坐标,用一个变量就行了,变量的作用域要确保在跟踪函数之外,可以用全局变量存。

根据上述思路进行了大胆的尝试!然后发现还是不行,只要当前图像一更新,之前画的轨迹就全都没了。

所以采取了下列思路:

开一个黑屏,画红色轨迹,等原背景图像全部更新完了,直接对着像素值全部贴在背景图像上。。笨办法

但是最终也实现了“实时”的显示轨迹。。。

关键代码如下:   

			//创建全黑图像
			lineimage = cvCreateImage(cvSize(frame.cols, frame.rows),  IPL_DEPTH_8U, 3);		
			int width=lineimage->width;
			int height=lineimage->height;
			for(i;i<height;i++)
			{
					uchar* pData=(uchar*)(lineimage->imageData+i*lineim
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值