【发布时间】: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