2 Star 1 Fork 1

wangzh/多目标检测

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
1-处理视频每一帧的图像.py 2.17 KB
一键复制 编辑 原始数据 按行查看 历史
import cv2
import os
import numpy as np
VIDEO_PATH = 'Test_Video/person_video.mp4'
RESULT_PATH = 'result1.mp4'
#指定多边形的顶点坐标
polygonPoints=np.array([[410,150],[810,150],[510,300],[110,300]],dtype=np.int32)
if __name__ == '__main__':
if not os.path.exists(VIDEO_PATH):
print(f'视频文件不存在: {VIDEO_PATH}')
exit()
capture = cv2.VideoCapture(VIDEO_PATH)
if not capture.isOpened():
print('无法打开视频文件')
exit()
fps=capture.get(cv2.CAP_PROP_FPS) #获取帧率
frame_width=int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)) #获取宽度
frame_height=int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT)) #获取高度
print(f'帧率:{fps},宽度:{frame_width},高度:{frame_height}')
videoWriter=None
while True:
success,frame=capture.read() #读取视频中的一帧
if not success:
print('无法读取帧,可能是视频结束或读取失败')
break
#在视频中间画一条线段
cv2.line(frame,pt1=(0,int(frame_height/2)),pt2=(int(frame_width),int(frame_height/2)),color=(0,0,255),thickness=3)
#画一个多边形
cv2.polylines(frame,pts=[polygonPoints],isClosed=True,color=(0,0,255),thickness=2)
#生成一张同样大小的空图片
mask=np.zeros_like(frame)
#填充多边形
cv2.fillPoly(mask,pts=[polygonPoints],color=(0,255,255))
#融合两张图片
frame=cv2.addWeighted(frame,0.7,mask,0.3,0)
#保存处理好的视频
if videoWriter is None:
fourcc=cv2.VideoWriter_fourcc('m','p','4','v')
videoWriter=cv2.VideoWriter(RESULT_PATH,fourcc,fps,(int(frame_width),int(frame_height)))
videoWriter.write(frame)
if frame is not None:
cv2.imshow(winname='window', mat=frame)
#参数如果设置得太小,视频就会播放得很快
if cv2.waitKey(1) & 0xFF == ord(' '):
break
print('视频播放结束')
#释放内存资源
capture.release()
videoWriter.release()
cv2.destroyAllWindows()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/WJungHo/multi-target-detection.git
git@gitee.com:WJungHo/multi-target-detection.git
WJungHo
multi-target-detection
多目标检测
master

搜索帮助