最近要用到大量航拍的汽车图片,目前搜集了bdd100k,BITVehicle_Dataset等,还需要自己搜集一部分进行标注,只能从搜集的视频中找了,之前使用python借助opence实现了一个版本,但是性能很低,这里使用matlab来实现,其实很简单,这里使用函数来实现,三个参数分别是视频路径,步长(每隔多少帧存储一张图片),全部存储没有必要,并且非常耗存储空间,第三个参数是图片存储地址,matlab在使用时要注意,脚本名称和函数名称一定要相同。
function getPictureFromMp4(video_file,pictureDir)
video=VideoReader(video_file);
frame_number=floor(video.Duration * video.FrameRate);
for i=1:frame_number
%每100帧存储一张图片
if rem(i,100)==0
image_name=strcat('11',num2str(i));
image_name=strcat(image_name,'.jpg');
I=read(video,i);
imwrite(I,[pictureDir,'/',image_name],'jpg');
I=[];
end
end
end