东莞做网站那家好,南昌网站建设制作与维护,商城网上购物,利用路由器做网站目录 原理
做法
代码实现
结果展示 原理 做法 代码实现
import numpy as np
import cv2 as cv# 读取视频
cap cv.VideoCapture(video.mp4)# 检查视频是否成功打开
if not cap.isOpened():print(Error: Cannot open video file.)exit()# 获取第一帧图像#x…目录 原理
做法
代码实现
结果展示 原理 做法 代码实现
import numpy as np
import cv2 as cv# 读取视频
cap cv.VideoCapture(video.mp4)# 检查视频是否成功打开
if not cap.isOpened():print(Error: Cannot open video file.)exit()# 获取第一帧图像并指定目标位置
ret, frame cap.read()# 目标位置
x, y, w, h 960,500, 100, 100
track_window (x, y, w, h)# 指定目标的感兴趣区域
roi frame[y:yh, x:xw]# 转换感兴趣区域的颜色空间HSV
hsv_roi cv.cvtColor(roi, cv.COLOR_BGR2HSV)# 计算感兴趣区域的直方图
roi_hist cv.calcHist([hsv_roi], [0], None, [180], [0, 180])# 归一化直方图
cv.normalize(roi_hist, roi_hist, 0, 255, cv.NORM_MINMAX)# 设置目标追踪的停止条件
term_crit (cv.TERM_CRITERIA_EPS | cv.TERM_CRITERIA_COUNT, 10, 1)while True:# 获取每一帧图像ret, frame cap.read()if not ret:break# 转换当前帧的颜色空间HSVhsv cv.cvtColor(frame, cv.COLOR_BGR2HSV)# 计算直方图的反向投影dst cv.calcBackProject([hsv], [0], roi_hist, [0, 180], 1)# 使用meanshift追踪ret, track_window cv.CamShift(dst, track_window, term_crit)# 绘制追踪结果pts cv.boxPoints(ret)pts np.int0(pts)img2 cv.polylines(frame, [pts],True,255,2)cv.imshow(frame, img2)if cv.waitKey(60) 0xFF ord(q):breakcap.release()
cv.destroyAllWindows()结果展示 追踪结果1