写一段python代码用opencv 读入给定的 乒乓mp4文件地址为CUsersJionieDesktopdazuoppmp4 编写代码分析每帧视频从视频画面中提取出乒乓球的遮罩然后再提取出乒乓球
的轮廓,并绘制在新的画布上。
以下是示例代码:
import cv2
读取视频文件
cap = cv2.VideoCapture('C:/Users/Jionie/Desktop/dazuo/pp.mp4')
创建输出视频文件
fourcc = cv2.VideoWriter_fourcc(*'mp4v') out = cv2.VideoWriter('output.mp4', fourcc, 30.0, (640, 360))
while True: # 逐帧读取视频 ret, frame = cap.read()
if not ret:
break
# 将图像转换为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 通过阈值分割获取乒乓球的遮罩
_, mask = cv2.threshold(gray, 200, 255, cv2.THRESH_BINARY)
# 提取乒乓球的轮廓
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 在新的画布上绘制乒乓球轮廓
canvas = frame.copy()
cv2.drawContours(canvas, contours, -1, (0, 0, 255), 2)
# 将输出帧写入输出视频文件
out.write(canvas)
# 显示当前帧图像
cv2.imshow('frame', canvas)
# 按下 q 键退出
if cv2.waitKey(1) == ord('q'):
break
释放资源
cap.release() out.release() cv2.destroyAllWindows(
原文地址: https://www.cveoy.top/t/topic/dQde 著作权归作者所有。请勿转载和采集!