【问题标题】:Convert video into greyscale in matlab在matlab中将视频转换为灰度
【发布时间】:2016-09-11 02:06:43
【问题描述】:

我正在尝试将视频文件转换为灰度。当我尝试运行 Matlab 脚本时,我得到一个“无效的视频数据 - 必须是数字或逻辑数据类型”。有人可以帮我解决我做错的事情吗?我也是 matlab 新手。

filename = 'Project1.m4v'; 
vid = VideoReader(filename); 
newVid = VideoWriter('NewVid');

open(newVid);
numFrames = vid.NumberOfFrames;
for frame = 1 : numFrames
    % Extract the frame from the movie structure.
    thisFrame = read(vid, frame); 
    %Convert each frame to black and white
    gray = rgb2gray(thisFrame); 
    writeVideo(newVid,gray); 

end

close(newVid); 

implay(newVid); 

【问题讨论】:

标签: matlab


【解决方案1】:

使用implay('NewVid.avi') 而不是implay(newVid);

您的代码中唯一的问题是最后一行:implay(newVid);
newVid 是一个 VideoWriter 对象 - 您使用 newVid = VideoWriter('NewVid'); 创建它。

我建议您将'.avi'文件扩展名添加到'NewVid'文件名:
使用:newVid = VideoWriter('NewVid.avi');

implay 不将VideoWriter 对象作为输入参数。
它不是在 Matlab 工作区中显示错误消息,而是在视频窗口中显示错误消息。

您需要做的就是将最后一行代码替换为implay('NewVid.avi')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多