【问题标题】:(Matlab) MovieWriter generates Black White movie from Color Images(Matlab) MovieWriter 从彩色图像生成黑白电影
【发布时间】:2021-09-07 10:37:46
【问题描述】:

我想从图像序列中生成电影。我使用了这段代码:

%% 4.) GENERATE THE MOVIE
disp("Generate the Movie...");
imageNames = dir(fullfile('images','*.png'));
imageNames = {imageNames.name}';
outputVideo = VideoWriter(fullfile('images','AcousticCamera.mp4'),'MPEG-4');
outputVideo.FrameRate = 10;
outputVideo.Quality = 95;
open(outputVideo)
for ii = 1:length(imageNames) %% loop over the images
   img = imread(fullfile('images',imageNames{ii}));
   writeVideo(outputVideo,img)
end
close(outputVideo)

输入图像是 png 彩色图像,但视频是黑白的。

【问题讨论】:

    标签: image matlab video


    【解决方案1】:

    因为您没有添加配置文件,所以它默认为灰度。 Videowriter Documentation

    【讨论】:

    • 我在 VideoWriter 对象中添加了一个配置文件,但它不支持,可能是因为 mp4.我得到了 --> 类 'VideoWriter' 的无法识别的方法、属性或字段 'colormap'。
    • 试试profiles = VideoWriter.getProfiles(),看看你是否还有可用的MPEG-4。
    • ProfileInfo 属性:名称:'MPEG-4' 描述:'具有 H.264 压缩的 MPEG-4 文件' FileExtensions: {'.mp4' '.m4v'} ColorChannels: 3 FrameRate: 30质量:75 VideoBitsPerPixel:24 VideoCompressionMethod:'H.264' VideoFormat:'RGB24'
    • 我认为我必须将颜色图添加到imb对象,因为这是一个普通的uint8矩阵,只有灰度信息。
    【解决方案2】:

    这是解决方案:

    ...
    colorMap = jet(256);
    for ii = 1:length(imageNames) %% loop over the images
       img = imread(fullfile('images',imageNames{ii}));
       writeVideo(outputVideo,im2frame(img,colorMap))
    end
    

    【讨论】:

    • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多