Task1 baseline学习 cv库的使用
cv视频读取:cv2.VideoCapture()函数:读取视频文件,返回一个VideoCapture对象,这个对象可以用来逐帧读取视频内容。
video_path = '训练集(有标注第一批)/视频/45.mp4'
cap = cv2.VideoCapture(video_path)
# 读取下一帧,只读一帧
while True:
ret, frame = cap.read()
#其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。
#frame就是每一帧的图像,是个三维矩阵。
if not ret:#读取到视频结尾了,break
break
break
cv保存图像:cv2.imwrite(path,img) path是要保存图像的路径,img是一个图像,数据类型为array,通常用一个三维的矩阵来表示。
file_name = os.path.basename(anno_path).replace('.json', f'_{frame_idx}.jpg')#os.path.basename返回路径中的最后一部分,即文件名 (例如0.json->0_0.jpg)
cv2.imwrite(os.path.join('yolo-dataset/train', file_name), frame)