行人跟踪程序
目的
根据色调来设计行人跟踪程序。
代码
import numpy as np
import cv2
#打开摄像头
cap = cv2.VideoCapture(0)
#获取第一帧图像
ret, frame = cap.read()
#设置初始窗口位置和大小
r, h, c, w = 300, 200, 400, 300
track_window = (c, r, w, h)
#从第一帧图像frame中提取roi图像
roi = frame[r:r + h, c:c + w]
#转换图像格式RGB->HSV
hsv_roi = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
#根据人体的颜色阈值设置掩模版,低值np.array((5., 30., 32.)),高值np.array((40., 180., 255.))
mask = cv2.inRange(hsv_roi, np.array((5., 30., 32.)),np.array((40., 180., 255.)))
#提取roi图形的彩色直方图
roi_hist = cv2.calcHist([hsv_roi], [0], mask, [180], [0, 180])
#归一化
cv2.normalize(roi_hist, roi_hist, 0, 255, cv2.NORM_MINMAX)
#设置CamShift参数,终止条件为10次迭代或至少移动1磅
term_crit = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 1)
i=0
while (1):
#获取视频图像
ret, frame = cap.read()
if ret == True:
#转换图像格式RGB->HSV
hsv