最近因为surface的处理性能不够,1920X1080的视频处理起来内存不够,无奈只好做视频裁剪,同时也是减少了无用信息的处理。

  • 需要输入的是视频的绝对路径和视频名。
  • 需要在显示的第一帧图像中标选想要裁剪的框
  • 需要给出输出视频的路径

代码如下:

dataDir = 'C:\Users\fskbo\Desktop\代码\data';
%第一步:检测参考帧
% Create a cascade detector object.
addpath(genpath('.'));infilename='WIN_20200212_15_34_20_Pro.mp4'
% Read a video frame and run the detector.
vidFile = fullfile(dataDir, infilename);
outfilename = [infilename(1:end-4),'_1st.avi'];%输出文件名字
outName = fullfile('C:\Users\fskbo\Desktop\代码\data',outfilename);
vid = VideoReader(vidFile);
frame = read(vid,1);
imshow(frame);
h = imrect;
loc = getPosition(h); %获取手动标选框的坐标
delete(h);
fr = round(vid.FrameRate);
len = vid.NumberOfFrames;
%%输出文件创建
vidOut = VideoWriter(outName);
vidOut.FrameRate = 20;
open(vidOut)
videoFileReader = vision.VideoFileReader(vidFile);
videoFrame = step(videoFileReader);
imshow(videoFrame);
%drawnow
%标记选择区域,bbox四个参数分别对应剪裁后左上角像素在原图像位置,剪裁后图像宽和高
bbox=[loc(1) loc(2) loc(3) loc(4)];
boxInserter = vision.ShapeInserter ( 'BorderColor','Custom',...'CustomBorderColor',[255 0 0],'LineWidth',3);
videoOut_chest = step(boxInserter, videoFrame,bbox);
%videoOut_chest = step(boxInserter, videoOut_chest,bbox_right);
figure(1),imshow(videoOut_chest,'border','tight');title('Detected image');
%%第一帧图像裁剪
faceImage = imcrop(videoFrame,bbox);
% ? ?axes(handles.axes4);
imshow(faceImage);
drawnow
writeVideo(vidOut,im2uint8(faceImage));
h=waitbar(0,'开始检测...','Name','正在跟踪...');
%第二步:裁剪其他帧
n=1;
% Track the bbox over successive video frames until the video is finished.
while ~isDone(videoFileReader)
n=n+1;
% Extract the next video framevideoFrame = step(videoFileReader);% Insert a bounding box around the object being tracked% videoOut = step(boxInserter, videoFrame, bbox);faceImage = imcrop(videoFrame,bbox);
% Display the annotated video frame using the video player object% step(videoPlayer, faceImage);writeVideo(vidOut,im2uint8(faceImage));
h=waitbar(0.05+n*(0.85/len),h,[num2str(floor(100*(0.05+n*(0.85/len)))),'%']);
end
% Release resources
close(vidOut);
h=waitbar(0.9,h,[num2str(90),'%']);
release(videoFileReader);
h=waitbar(1,h,[num2str(1),'%']);
clear vid;
close(h)
%axes(handles.axes3);
cla
%axes(handles.axes4);cla
drawnow

MATLAB裁剪视频(裁剪固定区域)相关推荐

  1. MATLAB 定时截取桌面固定区域并OCR

    文章目录 0. 前言 1. screencapture下载 2. 实现流程 3. MATLAB代码 4. 实现效果 结语 0. 前言 使用MATLAB实现定时截取桌面固定区域并OCR. 对于数据实时变 ...

  2. FFmpeg基础: 视频裁剪

    基本概念 在对视频进行裁剪之前,我们先讲几个基本概念. 第一个概念是PTS(Presentation Time Stamp) 显示时间戳,用来定位帧的显示时间. 第二个概念是DTS(Decode Ti ...

  3. 用tim从左到右移动帧(感兴趣区域)的Moviepy裁剪视频

    我正在使用MoviePy从服务器上的视频剪辑自动创建GIF.图书馆帮助进行各种各样的视频转换和剪辑,以创建gif.在 在我当前的项目中,我有一个视频剪辑,里面有很多移动的物体,很难对感兴趣的区域进行自 ...

  4. php视频画面区域裁剪,怎么裁剪视频画面

    视频本身有黑边,或需要将视频画面不需要的部分裁剪掉,用裁剪视频画面软件的"自由缩放"功能非常快速哦~~ 通过自由缩放功能裁剪视频画面 这个功能非常好玩 也非常实用 说不定通过此教程 ...

  5. 高度固定 宽度裁剪_ffmpeg 视频裁剪

    视频裁剪 时间 ( 00:00:01 ),开始到结束 ( 00:00:05 ), 首尾大概有一秒的误差 ffmpeg -ss 00:00:01 -i one.MP4 -to 00:00:05 -c c ...

  6. matlab+裁剪视频教程,Bandicut裁剪视频怎么操作?裁剪功能操作教程分享

    Bandicut作为专业的视频剪辑类软件,其中的视频剪辑.裁剪功能也是深受广大用户的喜爱,小编近期了解到很多小伙伴不知道怎么裁剪视频,那么我今天就来为大家将将具体的操作方法吧! 操作步骤如下: 1.首 ...

  7. Cesium多区域视频裁剪

    自定义了一个Material材质类,用与多区域裁剪,可以裁剪任意多个区域,也支持凹凸变形裁剪,内部使用纹理坐标去裁剪,所以不支持纹理旋转. 视屏效果可以见知乎 https://www.zhihu.co ...

  8. 短视频生产利器!视频裁剪之横屏转竖屏新技术,出自腾讯多媒体实验室

    腾讯多媒体技术专栏 伴随手机等智能设备的广泛使用以及短视频平台的兴起,越来越多的"竖屏"视频开始占据人们的视野.目前,许多"竖屏"视频仍是由16:9等宽高比的& ...

  9. IOS视频编辑,视频裁剪,视频拼接,音频处理,视频处理

    前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜.磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多 ...

最新文章

  1. 不管走多远,不要忘记停下来想想当初为何出发
  2. 闲诗一首:《扬州即行》
  3. 他们拿走腾讯广告百万奖金,我算是知道票圈广告为啥那么多赞了
  4. 自学python困难吗_Python学习难不难?零基础好学吗?
  5. Nginx 源码分析-- 模块module 解析执行 nginx.conf 配置文件流程分析 一
  6. element-ui的NavMenu置于顶部(mode=horizontal)时,让菜单可以滚动(overflow-x:auto)(主要用于移动端的菜单显示)...
  7. 2021 开源社年度报告:开心开源
  8. codeforce No to Palindromes!(枚举)
  9. 某 iOS 零点击 0day 漏洞已存在8年之久且正遭利用?苹果称正在调查并将推出补丁...
  10. 执行函数_PyCUDA(1)-执行核函数
  11. C# - ZIP 压缩流
  12. 初次接触ruby的困惑
  13. 2020-2022年最全湖南省矢量数据(路网含城市道路、铁路(包括地铁、轻轨)高速、国道、省道、县道、乡道+几百万个poi数据+省市县乡镇行政区划+河流水系网+建筑轮廓+30米dem等shp数据
  14. 计算机与书法专业,临帖要像?计算机“算法”精确你的每一个像素!震惊书法圈!...
  15. 【CZY选讲·Triangle】
  16. oracle数据库纵向转横向,复杂SQL语句实现表中数据横向变纵向问题求解
  17. 面向服务与微服务架构
  18. iOS超级签名流程及代码(php版本)
  19. 开源Android 图库
  20. 十年间学习模式的转变(反思应试教育的学习模式)

热门文章

  1. js 数字转人民币大写
  2. 课程笔记之《论文写作》
  3. 使用Hadoop提取网络日志KPI指标
  4. IoT赛道2019风向,升级为智联网AIoT,AI独角兽入场,“手机+AIoT”成标配【物女心经】
  5. 哥:我要嫁给你!(让人巨感动)
  6. unity 全息和xRay shader
  7. 【马斯克:从宇宙到人脑的征程】若AI攻占地球,猎鹰可带领人类移民火星
  8. Android jni curl返回CURLE_COULDNT_RESOLVE_HOST问题
  9. 投资基建无异扩大货币供应
  10. 【C++习题笔记】谭浩强C++程序设计(第三版)第七章