Ai
1 Star 0 Fork 0

杨雪锋/opencv-python-5

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
c10-6.py 1.46 KB
一键复制 编辑 原始数据 按行查看 历史
杨雪锋 提交于 2023-04-14 21:53 +08:00 . update ch10
import numpy as np
import cv2 as cv
# 获取图像
cap = cv.VideoCapture('video text.mp4')
# 获取第一帧图像,并指定目标位置
ret,frame = cap.read()
# 目标位置(行,高,列,宽)
r,h,c,w = 200, 60, 300, 100
track_window = (c,r,w,h)
# 指定目标的感兴趣区域
roi = frame[r:r+h, c:c+w]
# 计算直方图
# 转换色彩空间(HSV)
hsv_roi = cv.cvtColor(roi, cv.COLOR_BGR2HSV)
# 去除低亮度的值
mask = cv.inRange(hsv_roi, np.array((0., 60.,32.)), np.array((180.,255.,255.)))
# 计算直方图
roi_hist = cv.calcHist([hsv_roi],[0],mask,[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 ret == True:
# 计算直方图的反向投影
hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)
dst = cv.calcBackProject([hsv],[0],roi_hist,[0,180],1)
#进行camshift追踪
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 == 32:
break
else:
break
# 资源释放
cap.release()
cv.destroyAllWindows()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/hopeasy/opencv-python-5.git
git@gitee.com:hopeasy/opencv-python-5.git
hopeasy
opencv-python-5
opencv-python-5
master

搜索帮助