给定视频切割为图像序列,实现目标跟踪

保存视频每一帧至指定文件夹

Video=VideoReader(FileName) %可添加Name,Value键值对
for ii = 1:Video.NumFrames
    frames = read(Video, ii);
    imwrite(frames, ['PhotoesFileName', 'frame' num2str(ii,'%.5d') '.jpg']);%写入当前路径的PhotoesFileName文件夹中
end

训练trainCascadeObjectDetector分类器,也可采用Matlab中自带的分类器用于目标检测

imds =imageDatastore('birds');%birds文件下为用于训练分类器包含目标的图片,即正例
blds = boxLabelDatastore(gTruth.LabelData);%目标所对应图片的位置
positiveInstances=combine(imds,blds);
negativeFolder = fullfile('backgroud');%文件下不包含目标的图片,即反例
trainCascadeObjectDetector('Detector.xml',positiveInstances,negativeFolder,NumCascadeStages=2,ObjectTrainingSize=[200,200]);%参数设置,默认hog特征

 采用自带分类器则detector=vision.CascadeObjectDetector(),根据需要设置参数,默认为人脸检测器

detector = vision.CascadeObjectDetector('Detector.xml',MinSize=[200,200],MaxSize=[500,500]);
open(outputVideo);
for i = 1:numel(PhotoesFileName.Files)%
    frame = readimage(PhotoesFileName, i);
    bbox = step(detector, frame);
    detectedImg = insertObjectAnnotation(frame, 'rectangle', bbox, '',color='red',LineWidth=5);
    writeVideo(outputVideo, detectedImg);
end
%目标检测并写入创建的视频文件中
close(outputVideo);

常见问题:1.没有写入权限        2.找不到文件        3.训练目标检测器

1.启动matlab时右键以管理员身份启动

2.将文件夹路径添加到搜索路径中

3.参考(10条消息) 在Matlab下训练级联目标检测器_vision.cascadeobjectdetector_鹊踏枝-码农的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值