【问题标题】:Error reading an animated GIF file in Matlab在 Matlab 中读取动画 GIF 文件时出错
【发布时间】:2013-05-22 12:44:39
【问题描述】:

我通过以下方式读取 GIF 文件:

[image, map] = imread(imagePath, 'frames', 1);

但是,阅读下面发布的 GIF 图片时,我收到以下错误消息:

Subscripted assignment dimension mismatch.

Error in readgif>read_multiframe_gif (line 117)
    [X(:,:,:,j) undisposed_index] =
    handle_positive_base_frame(data{j},info(j),X(:,:,:,undisposed_index),X(:,:,:,j-1),undisposed_index,j);

Error in readgif (line 36)
[X,map] = read_multiframe_gif(filename);

Error in imread (line 435)
    [X, map] = feval(fmt_s.read, filename, extraArgs{:});

是因为 GIF 文件损坏还是有其他问题?

【问题讨论】:

  • 我得到与该文件完全相同的错误(Matlab R2012b,OS X 10.8.3)。其他动画 GIF(例如this one)可以正常打开。在十六进制查看器中打开文件,它看起来可能有问题 - 可能在标题中。有些程序可能会容忍格式错误的标题,但我猜 Matlab 不是。图像是如何创建的?你能在另一个程序中打开并重新保存吗?
  • @MarvinTheParanoidAndroid:我认为你完全误解了imread 的帮助。 idx 是用户指定的变量,可以是标量或向量范围的帧。
  • 我还没有创建它。重新保存它可能是一个解决方案;但是,我想知道我处理它的方式或文件本身是否有问题。
  • @JohnManak 您是否尝试过将 1 增加到例如 10?
  • 使用 IrfanView 将其重新转换为 GIF 时会发生什么?该操作应该重新创建帧并重新打包 GIF,因此如果文件损坏、标题损坏或类似情况,这将纠正它。 MATLAB 不会尝试恢复不完美的数据。

标签: image matlab image-processing gif animated-gif


【解决方案1】:

像这样播放 Gif 文件的实用程序可能会有所帮助

GIF Player

【讨论】:

    【解决方案2】:

    正如 horchler 在 cmets 中所说,Matlab 似乎不能容忍格式错误的图像文件,并且即使其他图像程序可能会打开它们也不会读取它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-07
      • 2023-03-30
      • 2018-12-31
      • 1970-01-01
      • 2015-01-05
      • 2014-04-11
      相关资源
      最近更新 更多