如何读取带有 Alpha 通道的 gif 动画

2023-11-23

在 MATLAB 中对 .gif 动画进行一些测试时,我意识到我无法读取 gif 的透明度。

Example:

enter image description here

(gif的原始来源)

If I do

[img,cmap]=imread('Finnandjake.gif');

img是 4D,具有冗余的第三维(奇怪)。挤压后(img=squeeze(img);),如果我展示它(imshow(img(:,:,30),cmap)):

enter image description here

透明度消失,使用图像中的另一种颜色作为背景,从而删除特征。然而

[img,cmap,alpha]=imread('Finnandjake.gif');

返回一个空的alpha。显然alpha的信息在图像中的某处,我如何在MATLAB中读取它?


/更新:我在以下位置提供了代码MATLAB 文件交换。发布的版本与 OCTAVE 兼容,并附带一些文档。


我想出了这个解决方案。返回参数是堆叠图像、颜色图和与透明度对应的索引。

%do not use, instead use: http://www.mathworks.com/matlabcentral/fileexchange/55693-transparentgifread-filename-
function [stack,map,transparent]=transparentGifRead(filename)
if ~exist(filename,'file')
    error('file %s does not exist',filename);
end
info=imfinfo(filename);
%Check if color map for all frames is the same
if any(any(any(diff(cat(3,info.ColorTable),[],3))))
    error('inconsistent color map')
else
    map=info(1).ColorTable;
end
%Check if transparent color for all frames is the same
if any(diff([info.TransparentColor]))
    error('inconsistent transparency information')
else
    transparent=info(1).TransparentColor-1;
end
import java.io.*
str = javax.imageio.ImageIO.createImageInputStream(java.io.File(filename));
t = javax.imageio.ImageIO.getImageReaders(str);
reader = t.next();
reader.setInput(str);
numframes = reader.getNumImages(true);
for imageix = 1:numframes
    data = reader.read(imageix-1).getData();
    height = data.getHeight();
    width = data.getWidth();
    data2 = reader.read(imageix-1).getData().getPixels(0,0,width,height,[]);
    if imageix == 1
        stack=zeros(height,width,1,numframes,'uint8');
    end
    %row major vs column major fix
    stack(:,:,1,imageix) = reshape(data2,[width height]).';%'
end
str.close();
end

将透明像素着色为绿色的一些演示代码:

[stack,map,transparent]=transparentGifRead('tr.gif');
map(transparent+1,:)=[0,1,0] %offset 1 because uint8 starts at 0 but indices at 1
for frame=1:size(stack,ndims(stack))
    imshow(stack(:,:,frame),map);
    pause(1/25);
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何读取带有 Alpha 通道的 gif 动画 的相关文章

  • 将图像保存和检索到数据库的最佳方法

    寻求上述建议 希望创建一个 SQLite 数据库 其中每行数据主要是字符串 但我也想保存从手机拍摄的图像 是否建议或可能保存位图图像的编码 Base 64 字符串并在调用数据行时将其转换回图像 我还在某处读到有一个 blob 列类型可以保存
  • MATLAB 教程中的 SIFT 实现

    我正在寻找 MATLAB 中的一些基本 SIFT 实现 我需要从第一原则来写它 另外 我正在寻找一些可以解释程序中发生的事情的内容 Vedali 的代码和 David Lowe 的代码超出了我的理解范围 如果您是 Matlab 用户 您一定
  • HTTP 重定向图像可以吗?

    返回图片资源时返回301 302 303代码可以吗 我过去曾这样做过 而且似乎有效 这是好的做法吗 它与大多数浏览器兼容吗 是的 您可以重定向图像 浏览器将遵循重定向 但出于性能原因 您通常希望将重定向保持在最低限度 因为每个重定向都需要单
  • 如何从本地计算机或网络资源在 Jupyter Notebook 中嵌入图像或图片?

    我想将图像包含在 jupyter 笔记本中 如果我执行以下操作 它会起作用 from IPython display import Image Image img picture png 但我想将图像包含在 markdown 单元格中 并且
  • 在 Matlab 中将 datenum 转换为 datetime 的最快方法

    我在 Matlab 中将 datenum 转换为 datetime 时遇到问题 Given dnum floor now floor now 1 我尝试了以下方法 datenum dnum 但这没有用 我发现有效的方法是 datetime
  • 如何缩放图像的一部分并插入到 matplotlib 中的同一图中

    我想缩放数据 图像的一部分并将其绘制在同一个图中 看起来有点像这个图 是否可以在同一图中插入缩放图像的一部分 我认为可以用子图绘制另一个图形 但它绘制了两个不同的图形 我还阅读了添加补丁以插入矩形 圆形 但不确定将图像的一部分插入到图中是否
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • .php 随机图像在外部站点上作为 .jpg

    我发布的论坛只允许从外部 URL 加载 jpg png 和 gif 图像 我想解决这个问题 并从服务器上的目录中随机选择一个动态头像 但我无法使其正常工作 可能是由于在外部站点上执行了额外的检查 或者我的代码中存在错误 到目前为止 我已经在
  • 在 Matlab 中高效获取像素坐标

    我想在 Matlab 中创建一个函数 给定一个图像 该函数将允许人们通过单击图像中的像素来选择该像素并返回该像素的坐标 理想情况下 人们能够连续单击图像中的多个像素 并且该函数会将所有相应的坐标存储在一个矩阵中 有没有办法在Matlab中做
  • matlab中的正则逻辑回归代码

    我正在尝试正则化 LR 在 matlab 中使用以下公式很简单 成本函数 J theta 1 m sum y i log h x i 1 y i log 1 h x i lambda 2 m sum theta j 梯度 J theta t
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • 减少非常大图像的文件大小,而不改变图像尺寸

    考虑一个处理可能非常大的 PNG 文件上传的应用程序 所有上传的文件必须存储到磁盘以供以后检索 但是 PNG 文件的大小最大可达 30 MB 但磁盘存储限制规定每个文件的最大大小为 1 MB 问题是获取文件大小高达 30 MB 的输入 PN
  • 如何使用 MATLAB 的 substruct 函数创建表示使用“end”的引用的结构?

    我想使用substruct http www mathworks com help matlab ref substruct html函数创建一个结构体以供使用subsref 目的是使用索引字符串subsref而不是通常的 符号 因为我正在
  • 如何在放置颜色条后保持子图大小不变

    假设我们有一个 1 2 子图 我们在其中绘制了一些图形 如下所示 subplot 1 2 1 surf peaks 20 subplot 1 2 2 surf peaks 20 然后我们要添加一个颜色条 colorbar 我不希望结果中的正
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • 找到图像特征宽度的正确方法和Python包

    输入是一个在黑色背景上带有彩色 抱歉 垂直线的光谱 给定该带的近似 x 坐标 用 X 标记 我想找到该带的宽度 我对图像处理不熟悉 请引导我前往正确的方法图像处理和Python图像处理package也能起到同样的作用 我认为 PIL Ope
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如
  • 如何制作 Bash 脚本来查找项目中未使用的图像?

    如何制作一个 Bash shell 脚本 它可以识别所有 jpg gif 和 png 文件 然后识别文件夹中任何文本文件中哪些文件未通过 url href 或 src 链接 这就是我开始的 但我最终得到了与我想要的相反的结果 我不想知道引用

随机推荐

  • 什么是 numpy.core._multiarray_umath.implement_array_function 以及为什么它花费大量时间?

    我使用 numpy 进行大规模数据分析 有很多矩阵实现 例如 dot count nonzero linalg svd 后 prun在 Jupyter 笔记本中 我发现numpy core multiarray umath implemen
  • 此版本在 https://itunesconnect.apple.com 上无效

    我在 iTunes Connect 上遇到此错误 此构建无效 上传之前验证成功然后上传 但是上传完成后仍然出现错误 我已上传超过 10 次 但每次都会收到 此版本无效 的信息 甚至没有人从苹果收到任何有关此错误的电子邮件通知 Xcode 7
  • 在 android 上使用 com.android.camera.action.CROP 裁剪保存的图像

    我读过很多关于此的问题 但我仍然无法使用此代码 也许任何人都可以纠正我的代码 我想从我知道使用 com android camera action CROP 位置的文件中裁剪图像像这样 mImageCaptureUri Uri fromFi
  • 如何用字符串数组填充ListView?

    我想在我的 ListView 中显示这些项目
  • Python:为什么partition(sep)比split(sep, maxsplit=1)更快

    我发现了一个有趣的事情partition比split当获取分隔符后的整个子字符串时 我已经在 Python 3 5 和 3 6 Cpython 中进行了测试 In 1 s validate field name In 2 s partiti
  • Angular 2 中的全局管道

    我想让管道在所有应用程序中可用 根据我在 Angular 文档和互联网中读到的内容 如果我在根模块声明中声明一个管道 它会使该管道在所有应用程序中可用 我有这个AppModule代码 NgModule imports BrowserModu
  • 为什么 Google Play 商店没有显示应用程序设备不可用的原因?

    我是移动应用程序开发人员 也从事本机和 Phone Gap 方面的工作 我在 Phonegap 中构建了一个应用程序 该应用程序在设备中完美运行 但在某些选项卡中无法运行 我在这里找到的Google Play 商店政策 但是为什么他们没有显
  • 如何将项目添加到 magento 面包屑中

    我想在用户在 magento 前端导航我自己的模块时显示面包屑 该网站已经有适当的面包屑代码 可以根据标准 magento 面包屑在其他地方使用 我需要在模块中做什么来指定当前的面包屑路径 我希望能够以编程方式执行此操作 而不是在面包屑 p
  • postgresql 中不存在函数 min(uuid)

    我使用 sqoop 将表从 Postgres 导入到 hdfs 我的表有 uuid 字段作为主键 我的命令 sqoop 如下 sqoop import connect jdbc postgresql localhost 5432 mydb
  • R reshape2 中的cast()调用的自定义聚合函数出错

    我想使用 R 将具有非唯一行名称的表中的数字数据汇总到具有唯一行名称的结果表 并使用自定义函数汇总值 汇总逻辑是 如果最大值与最小值之比reshape2包裹 example table with non unique row names t
  • R 中的情感分析(不使用 tm.plugin.tags)

    我正在使用 R 版本 3 0 2 并已安装该软件包tm 之前我还加载了一个名为tm plugin tags 为了衡量文本语料库是正面还是负面 我使用了以下方法 library tm library tm plugin tags pos lt
  • eclipselink/Moxy:基于类型的继承和属性名称重载

    我面临着使用 MOXy 的 JAXB 实现和外部元数据绑定文件进行继承和多态性的编组 解组问题 我无法控制 XML 文件或模型类 模型内部有多个继承其他 DTO 类的类 这是我正在工作的环境的示例 这个示例仅出于某些语法目的 真实的环境涉及
  • 启动定位策略

    我通过 GPS 定期接收位置更新 问题是距离第一次位置更新发生的时间 太长了 当用户在建筑物内时 情况会变得更糟 因此我正在寻找一些策略来改善启动时间 目前我不使用getLastKnownLocation但我会 我开始读书深入了解位置得到一
  • PHP 7.2 中 mcrypt_encrypt 的完全替代方案

    由于 PHP 7 2 不再支持 mcrypt crypt 我正在尝试精确替代该函数 在阅读了许多 SO 答案后 我发现以下代码使用 PHPSECLIB 但它没有生成与 mcrypt 一样的精确加密文本 function encryptRJ2
  • XAML:如何仅在设计模式下更改背景颜色?

    我有一个具有白色文本前景色和透明背景色的控件 稍后此用户控件将被添加到带有真实背景颜色的不同控件中 然而在设计过程中 在VS 2010中控制白色背景上的白色前景 我明显看不到任何东西 无论如何 要在设计时定义不同的颜色吗 我已经尝试过这个
  • 生成二维数组的梯度图

    我有一个二维数组 它将每个点的属性值存储为其元素 f x y f x y 现在我想找到这个数组的梯度 我调查了np gradient但它只给出两个数组作为返回 第一个在 x 方向上具有导数 第二个在 y 方向上具有导数 我想了解如何使用此方
  • 如何在按下按钮时继续执行工作?

    我想在按下按钮时使用 Java 继续执行工作 当释放按钮时 工作应该停止 像这样的东西 Button is pressed for int i 0 i lt 100 i count i print count 我怎样才能实现这个目标 One
  • TypeScript 中必需的泛型类型与推断的泛型类型

    以下泛型类型之间有什么区别 type FnWithRequiredParam
  • 如何获取 Solr 中最后一个索引记录?

    我想知道如何获取 搜索 Apache Solr 中的最后一个索引记录 当现有记录更新时 它会转到所有记录的末尾 所以我想获取最后一个索引记录 thanks 您可以将 时间戳 字段添加到 Solr 架构中 该字段在添加时将当前日期 时间放入记
  • 如何读取带有 Alpha 通道的 gif 动画

    在 MATLAB 中对 gif 动画进行一些测试时 我意识到我无法读取 gif 的透明度 Example gif的原始来源 If I do img cmap imread Finnandjake gif img是 4D 具有冗余的第三维 奇