- python 读取指定路径下的图像和视频文件
- OpenCV读取图片:cv2.imread(path);
- OpenCV读取视频::使用VideoCapture类和read()函数;
打开指定路径下的视频文件:cap =cv2.VideoCapture(path)
读取每一帧:flag,frame = cap.read()
举个栗子----打开视频并读取每一帧图片,将视频转换为4维的矩阵:
def load_video(video_filename):
cap=cv2.VideoCapture(video_filename)#通过VideoCapture函数对视频进行读取操作 打开视频文件
if cap.isOpened():
print("正确打开视频文件")
else:
print("没有正确打开视频文件")
frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
width, height = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = int(cap.get(cv2.CAP_PROP_FPS))
video_tensor=np.zeros((frame_count,height,width,3),dtype='float')
while cap.isOpened():
flag,frame=cap.read()#读取每一帧图片 flag表示是否读取成功 frame是图片
if flag is True: #if flag == True:
video_tensor[x]=frame
else:
break
return video_tensor,fps
关于怎样进入到指定路径,可以看这篇文章
https://blog.csdn.net/love_withyou/article/details/99441666
- python 保存(写入)指定路径下的图像和视频文件
- OpenCV将图片写入到指定路径中:cv2.imwrite(path,frame);
- OpenCV将每一帧图片写入到视频中, 需要指定视频的格式, 使用VideoWriter类和write()函数;
VideoWriter类写入视频时, 需要提供路径, 格式, 码率(fps), 帧的尺寸等参数;
举个栗子:
def save_video(video, fps, save_filename='media/output.avi'):
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
writer = cv2.VideoWriter(save_filename, fourcc, fps, (video.shape[2], video.shape[1]), 1)
for x in range(0, video.shape[0]):
writer.write(cv2.convertScaleAbs(video[x]))