图像变视频

一、Matlab方法

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);

二、python

使用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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值