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

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

编程时发现用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
要绘制质心运动轨迹,需要先使用OpenCV进行图像处理,然后进行轮廓检测,从而得到轮廓的质心坐标。接下来,将质心坐标存储到一个数组中,并使用OpenCV的绘图函数将质心轨迹绘制出来。 以下是一个示例代码: ```python import cv2 import numpy as np cap = cv2.VideoCapture(0) # 定义颜色和字体 color = (0, 255, 0) font = cv2.FONT_HERSHEY_SIMPLEX # 创建空的质心坐标数组 points = [] while True: ret, frame = cap.read() # 转换成灰度图像 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 进行二值化处理 ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 轮廓检测 contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 遍历轮廓 for cnt in contours: # 计算轮廓的质心坐标 M = cv2.moments(cnt) if M["m00"] != 0: cx = int(M["m10"] / M["m00"]) cy = int(M["m01"] / M["m00"]) # 将质心坐标加入数组 points.append((cx, cy)) # 绘制当前质心位置 cv2.circle(frame, (cx, cy), 5, color, -1) # 绘制质心轨迹 for i in range(1, len(points)): cv2.line(frame, points[i - 1], points[i], color, 2) # 显示图像 cv2.imshow('frame', frame) # 按下q键退出 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放摄像头并销毁所有窗口 cap.release() cv2.destroyAllWindows() ``` 上述代码通过捕获摄像头图像,检测并绘制轮廓质心,并将质心坐标存储到数组中。然后,通过绘制质心轨迹,将所有质心位置连接起来形成轨迹。最后,通过OpenCV的窗口显示图像,并等待用户按下q键退出程序。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值