html网站模板资源,天津 网站备案,名字logo设计生成器免费,做个外贸网站一般需要多少钱光流估计
光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”#xff0c;根据各个像素点的速度的速度矢量特征#xff0c;可以对图像进行动态分析#xff0c;例如目标跟踪
高度恒定#xff1a;同一点随着时间的变化#xff0c;其亮度不会发生改变。小运动根据各个像素点的速度的速度矢量特征可以对图像进行动态分析例如目标跟踪
高度恒定同一点随着时间的变化其亮度不会发生改变。小运动随着时间的变化不会引起位置的剧烈变化只有小运动情况下才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数。空间一致一个场景上临近的点投影到图像上也是临近点且临近点速度一致因为光流法基本方程约束只有一个而要求xy方向的速度有两个未知变量 所以需要联立n多个方程求解。
cv2.calcOpticalFlowPyrlLK(): 参数
prevlmage 前一帧图像nextlmage 当前帧图像prevPts 待跟踪的特征点向量winSize 搜索窗口的大小maxLevel 最大的金字塔层数 返回:nextPts 输出跟踪特征点向量status 特征点是否找到找到的状态为1未找到的状态为0 test import numpy as np
import cv2cap cv2.VideoCapture(test.avi)# 角点检测所需参数
feature_params dict( maxCorners 100,qualityLevel 0.3,minDistance 7,blockSize 7 )# lucas kanade参数
lk_params dict( winSize (15,15),maxLevel 2,criteria (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03))# 随机颜色条
color np.random.randint(0,255,(100,3))# 拿到第一帧图像
ret, old_frame cap.read()
old_gray cv2.cvtColor(old_frame, cv2.COLOR_BGR2GRAY)
p0 cv2.goodFeaturesToTrack(old_gray, mask None, **feature_params)# 创建一个mask
mask np.zeros_like(old_frame)while(True):ret,frame cap.read()frame_gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# 需要传入前一帧和当前图像p1, st, err cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params)# st1表示good_new p1[st1]good_old p0[st1]# draw the tracksfor i,(new,old) in enumerate(zip(good_new,good_old)):a,b new.ravel()c,d old.ravel()mask cv2.line(mask, (int(a),int(b)),(int(c),int(d)), color[i].tolist(), 2)frame cv2.circle(frame,(int(a),int(b)),5,color[i].tolist(),-1)img cv2.add(frame,mask)cv2.imshow(frame,img)k cv2.waitKey(150) 0xffif k 27:break#更新old_gray frame_gray.copy()p0 good_new.reshape(-1,1,2)cv2.destroyAllWindows()
cap.release()
运行后随便截取一帧为