Выполняя некоторые тесты с анимацией .gif в MATLAB, я понял, что каким-то образом я не могу прочитать прозрачность gif.Как читать анимированный gif с альфа-каналом
Пример:
Если я
[img,cmap]=imread('Finnandjake.gif');
img
является 4D с резервированием 3-го измерения (странно). После выдавливания его (img=squeeze(img);
), если я его показать (imshow(img(:,:,30),cmap)
):
прозрачность исчезает, используя другой цвет из изображения в качестве фона, тем самым удаляя функции. Однако
[img,cmap,alpha]=imread('Finnandjake.gif');
возвращает пустой alpha
. Очевидно, что информация о альфе находится где-то в изображении, как я могу ее прочитать в MATLAB?
Я думаю, что MATLAB не может управлять прозрачности для GIF-изображения. Из mathworks.com: 'imread (___) дополнительно возвращает прозрачность изображения. Этот синтаксис применим только к файлам PNG, CUR и ICO. « – obchardon
@obchardon Я заметил, но тогда есть ли способ загрузить GIF-файл в MATLAB с альфа-информацией? Его просто файл gif, это не может быть так сложно –
Я хотел предложить конвертировать GIF в PNG с помощью Imagemagick и считывать PNG в цикле. Но я даже не могу заставить MATLAB распознавать слой Alpha в PNG, хотя он * присутствует * в файле. :-( – hbaderts