- clear;
- %% 数据文件夹
- video_name = './boat';
- %圈数:7-78
- %帧数:0-45
- obj_gray = VideoWriter([video_name,'.avi']);%所转换成的视频名称
-
- %将单张图片存在avi文件
- open(obj_gray);
-
- % 图片张数
- img_num = 119;
- img_path = '';
- for ii = 1:img_num
- % img_name = ['bkcg_',num2str(ii,'%04d'),'.png'];
- img_name = [img_path, num2str(ii),'.jpg'];
- img = imread(img_name);
- writeVideo(obj_gray, img);
- end
- close(obj_gray);
使用opencv来进行。
缺点:宽度超宽,导致ffmpeg难以初始化。(内存分配不够???原因不明)
- import cv2
- import os
-
- fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') # 设置输出视频为mp4格式
-
- # cap_fps是帧率,可以根据随意设置
- cap_fps = 0.2
-
- # 注意!!!
- # size要和图片的size一样,但是通过img.shape得到图像的参数是(height,width,channel),但是此处的size要传的是(width,height),这里一定要注意注意不然结果会打不开,比如通过img.shape得到常用的图片尺寸
- size =(468, 9064)
-
- # 设置输出视频的参数,如果是灰度图,可以加上 isColor = 0 这个参数
- # video = cv2.VideoWriter('results/result.avi',fourcc, cap_fps, size, isColor=0)
- video = cv2.VideoWriter('F:/data/706/01.mp4', fourcc, cap_fps, size, isColor=0)
-
- # 这里直接读取py文件所在目录下的pics目录所有图片。
- img_path = 'F:/data/706/01/'
-
- # https://blog.csdn.net/AugustMe/article/details/118524685 关于排序的问题
- file_lst = os.listdir(img_path)
- file_lst.sort(key=lambda x:int(x.split('.')[0])) # 对‘.’进行切片,并取列表的第一个值(左边的文件名)转化整数型
- for filename in file_lst:
- img = cv2.imread(img_path + filename)
- video.write(img)
- video.release()