matlab截取一段视频和裁剪一小块视频区域
截取一段视频的400帧~600帧
function [vidFile,samplingRate] = Get_Vedio()addpath(genpath('.'));
global inFile;%截取一段视频vidFile='myfile.avi';
vObj = VideoReader(vidFile);
%截取400帧~600帧
myMovie = read(vObj,[400 600]);
myVideo = VideoWriter('.\result\myfile400.avi', 'Uncompressed AVI');
myVideo.FrameRate = 20;
open(myVideo);
writeVideo(myVideo, myMovie);
vidFile = 'myfile400.avi';
裁剪一小块视频区域,主要采用imcrop函数
function [outfilename,fr] = FirstFrameFaceDet(infilename,handles)
%第一步:检测参考帧
% Create a cascade detector object.
addpath(genpath('.'));
global infilename;
infilename='cdd.mp4'
% Read a video frame and run the detector. data\cdd.mp4
vidFile = fullfile('data', infilename);
outfilename = [infilename(1:end-4),'_1st.avi'];
outName = fullfile('result',outfilename);
vid = VideoReader(vidFile);
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=[300 300 250 180];
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 frame
videoFrame = 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截取一段视频和裁剪一小块视频区域相关推荐
- php自动裁剪黑边,视频画面裁剪怎么将视频四周的黑边去除?
今天讲的是如何裁剪视频画面,大家应该也发现了有很多的视频在播放的时候四周是有很宽的黑边的,那我们就要想办法将视频的黑边去掉.这里我们去掉视频黑边的办法就是利用一款视频转换器的裁剪功能将视频画面的黑边去 ...
- 视频如何裁剪?简单好用的方法介绍
视频如何裁剪?现如今视频在我们的日常生活中十分常见,无论是我们观看电视剧,还是刷短视频.这些视频都是人们剪辑制作出来的,那么在视频剪辑中的最基础的一个操作就是裁剪视频.因为我们下载下来的视频在尺寸和长 ...
- 怎样把视频中的一小段制作成 GIF动图
平常生活中大家聊天肯定会发现有很多斗图高手,不管是家人群.同学群还是好友群,从不缺乏这样的人,大多数用来斗图的图片都是GIF动图,GIF动图即有趣又形象,像小视频一样,只不过它是图片格式.大家对GIF ...
- 怎么把视频里的一小段制作成gif图片?教你视频片断做成GIF
很多小伙伴都在问,那么多好玩的gif图片是怎么制作的, 怎么把视频转gif(https://www.gif.cn)呢?有一种视频在线转gif格式的工具,可以简单又快速的把视频转换成动态图,赶紧跟着小编 ...
- ffmpeg截取一段视频中一段视频
ffmpeg截取一段视频中一段视频 ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cut ...
- 如何基于ffmpeg截取一段视频中的多个片段,并合并在一起,且不改变原来的效果?
ffmpeg截取一段视频中一段视频 ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cut ...
- ffmpeg 从现有视频中截取一段
ffmpeg 从现有视频中截取一段 1. ffmpeg -i ./input.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:25 ./out ...
- 视频怎么截取一段,如何分割视频
最近是不是都在追颖宝的热播剧知否,夫妻搭档不知道有没有在现场撒过狗粮,反正剧情发展到现在,小编隔着屏幕都闻到了狗粮的味道,剧中经典的人物形象有很多,个个个性鲜明,比如盛家大娘子,还有我们的男主顾二爷, ...
- matlab 视频画面裁剪(去除手机拍摄视屏的黑边)
%--视频画面裁剪(三通道)--%% %--去除手机拍摄视屏的黑边 (图像居中 左右有两条很宽的黑边)%创建视频文件并打开 vidObj = VideoWriter('output','MPEG-4' ...
最新文章
- SyntaxError: invalid syntax的问题原因和解决办法
- jmeter --上传文件
- (Mybatis)Mybatis简介和初步使用
- java对象在内存中的布局
- acwing 7 混合背包
- 网络套接字(Network socket)
- ibm系列文章 -- Windows 到 Linux 之旅
- Linux基础命令---comm
- Photoshop基本操作
- Hadoop生态圈介绍
- Citrix Receiver for Mobile Phone
- Golang 的类型与零值
- 网络设置管理 NetSetMan Pro v4.7.1 Lite 绿色便携版
- 怎么压缩PPT,这一招就可以搞定
- ENVI哨兵一号数据处理
- 我给VSCode报了个bug,微软工程师凌晨这样回复我...
- 学习excel的使用技巧复制一列文本成新列去重
- 激光雷达的性能指标-以大疆livox-Mid40激光雷达为例
- c语言编程曹冲称象,《曹冲称象》教学设计
- Python关键字大全