首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab:编写avi文件

Matlab:编写avi文件
EN

Stack Overflow用户
提问于 2011-07-26 20:29:51
回答 1查看 2.3K关注 0票数 1

我有一个问题,当创建一个avi文件使用Matlab。我的目标是在整个视频上使用边缘过滤器,并将文件保存为avi。过滤器工作得很好,我的问题是avi文件的写入。

我的代码:

代码语言:javascript
复制
vidFile = VideoReader('video.avi');
edgeMov = avifile('edges','fps',30);

for i = 1:vidFile.numberofframes
  frameI = read(vidFile,i);
  frameIgray = rgb2gray(frameI);
  edgeI = edge(frameIgray,'canny',0.6);
  edgeIuint8 = im2uint8(edgeI);
  edgeIuint8(:,:,2) = edgeIuint8(:,:,1);
  edgeIuint8(:,:,3) = edgeIuint8(:,:,1);
  edgeMov = addframe(edgeMov,edgeIuint8);
end

edgeMov = close(edgeMov)

当循环结束并且avifile关闭时,我去播放视频,它显示"Windows Media Player在播放此文件时遇到问题“。我还尝试了Media Player Classic和VLC,但都没有成功,这让我相信问题一定是文件本身的问题。使用GSpot,我检查了文件,它说,AVI头是损坏的。

再次重试循环会返回完全相同的问题。令我困惑的是,当我运行循环的帧数较少时,例如30帧,视频写得很好,我可以观看它。我正在尝试转换的视频的大小超过1000帧,所以我不知道大小是不是一个问题?

任何帮助都将不胜感激,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-26 20:36:39

我已经使用以下代码创建了AVI

代码语言:javascript
复制
edgeMov = avifile('video.avi','compression','Indeo5','fps',15,'quality',95); 

试试看。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6830018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档