python - 如何在 matplotlib 中将 RGBA 图像叠加在 RGB 图像上

标签 python matplotlib imshow

我有一组 RGB 图像(大小 (400,200,3)),我正在使用 matplotlib.animation 对其进行动画处理,并且我想在它们之上覆盖一个 RGBA 图像(大小 (400,200,4))。当我使用axes.add_image()覆盖第二个图像时(它在没有覆盖的情况下工作正常),FFMPEG似乎被添加的alpha数据阻塞了。我想知道是否有一种方法可以覆盖第二个图像并在将其传递给 matplotlib.animation 之前消除 alpha 数据,因为我认为这可以解决问题。

我使用的是 python 2.7.9 和 matplotlib 1.4.2。

最佳答案

你有一个两步问题。首先您需要组合 RGBA 图像,然后您需要映射 RGBA -> RGB。请注意,通过将 alpha mask 设置为完全不透明,从 RGB -> RGBA 映射第一个图像非常简单。这两个问题都已经在 SO 上得到了解决。

  1. 组合 RGBA + RGBA:

    Determine RGBA colour received by combining two colours

  2. 映射 RGBA -> RGB:

    Convert RGBA color to RGB

关于python - 如何在 matplotlib 中将 RGBA 图像叠加在 RGB 图像上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28003023/

相关文章:

python - 使用 Pandas 将数据框中的 Python 对象列转换为没有日期的时间

matlab - 当用线条覆盖时,图像逐渐消失

python - 更改 imshow 或类似函数的单元格大小/宽度

python - 如何在机器人框架或Python中将日期格式(如 'Wed Mar 13 10:10 EDT 2013')转换为 "2013-03-13 10:10"

python - python程序中的Bash

python - 如何避免一直将字节解码为字符串?

Python 从长度变化的数组中刷新 Pyplot 线

python - 在 MacOSX 上编译coverage.py 时出错

python - 绘制从同一图形 Python 中的循环获得的两个数据帧