编辑3:

已经澄清,基本问题是:

如何把’黑&在imshow制作的matplotlib图像前面的透明’面具?

掩模应由先前绘制的黑色和暗色的matplotlib产生.白色的身影.

以下代码通过访问和混合图形rgba位图来演示此功能:

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.cm as cm

import matplotlib.mlab as mlab

def get_rgba_bitmap(fig):

fig.canvas.draw()

tab = fig.canvas.copy_from_bbox(fig.bbox).to_string_argb()

ncols, nrows = fig.canvas.get_width_height()

return np.fromstring(tab, dtype=np.uint8).reshape(nrows, ncols, 4)

def black_white_to_black_transpa(rgba):

rgba[:, :, 3] = 255 - rgba[:, :, 0]

rgba[:, :, 0:3] = 0

def over(rgba1, rgba2):

if rgba1.shape != rgba2.shape:

raise ValueError("rgba1 and rgba2 shall have same size")

alpha = np.expand_dims(rgba1[:, :, 3] / 255., 3)

rgba = np.array(rgba1 * alpha + rgba2 * (1.-alpha), dtype = np.uint8)

return rgba[:, :, 0:3]

# fig 1)

fig1 = plt.figure(facecolor = "white")

fig1.set_dpi(300)

ax1 = fig1.add_subplot(1, 1, 1, aspect = "equal", axisbg = "black")

ax1.add_artist(plt.Circle((0., 0., .5), color = "white"))

ax1.set_xlim(-5, 5)

ax1.set_ylim(-5, 5)

bitmap_rgba1 = get_rgba_bitmap(fig1)

black_white_to_black_transpa(bitmap_rgba1)

# fig 2

fig2 = plt.figure(facecolor = "white")

fig2.set_dpi(300)

delta = 0.025

ax2 = fig2.add_subplot(1, 1, 1, aspect = "equal", axisbg = "black")

ax2.set_xlim(-5, 5)

ax2.set_ylim(-5, 5)

x = y = np.arange(-3.0, 3.0, delta)

X, Y = np.meshgrid(x, y)

Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)

Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)

Z = Z2-Z1 # difference of Gaussians

im = ax2.imshow(Z, interpolation='bilinear', cmap=cm.jet,

origin='lower', extent=[-5, 5, -5, 5],

vmax=abs(Z).max(), vmin=-abs(Z).max())

bitmap_rgba2 = get_rgba_bitmap(fig2)

# now saving the composed figure

fig = plt.figure()

fig.patch.set_alpha(0.0)

ax = fig.add_axes([0., 0., 1., 1.])

ax.patch.set_alpha(0.0)

ax.imshow(over(bitmap_rgba1, bitmap_rgba2))

plt.axis('off')

fig.savefig("test_transpa.png", dpi=300)

plt.show()

赠送:

我测试了你的初始光子测试案例,图片质量似乎没问题

现在,如果你想让图形背景透明:

>将fig1背景设置为’white’,即fig1 = plt.figure(facecolor =’white’),白色将传递给black_white_to_black_transpa时变为透明

>将fig2背景设置为透明fig2.patch.set_alpha(0.0),因为它将被存储而不会修改为bitmap_rgba2

>最后,在函数内部混合bitmap_rgba1和bitmap_rgba2时,请注意alpha通道(参见下面的可能修改)

06001

最后(?)编辑:

似乎在to_string_argb返回的数组与imshow预期的数组(rgb通道的顺序)之间存在不一致.一种可能的解决方案是将ax.imshow(over(bitmap_rgba1,bitmap_rgba2))更改为:

over_tab = over(bitmap_rgba1, bitmap_rgba2)

over_tab[:, :, 0:3] = over_tab[:, :, ::-1][:, :, 1:4]

ax.imshow(over_tab)

python背景图颜色_python – 使图形透明与彩色背景相关推荐

  1. python 热图颜色_Python可视化matplotlibseborn14-热图heatmap

    热力图(heatmap)可通过颜色深浅变化,优雅的展示数据的差异. 详细介绍python seaborn绘制热图 本文速览Matplotlib热图heatmapseaborn热图1seaborn热图2 ...

  2. python箱形图颜色_python绘图:箱线图

    箱线图 boxplot函数的参数解读 绘图之前,我们先来讲解一下matplotlib包中boxplot函数的参数含义及使用方法: plt.boxplot(x, notch=None, sym=None ...

  3. 【最简洁】一句CSS3代码实现不规则自定义背景图拼接样式,多用于异形弹窗背景图

    如果阁下想玩进阶版的背景图样式请移步[进阶版九宫格背景图片]如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?_你挚爱的强哥❤给你发来1条消息❤-CSDN博 ...

  4. .Net C# 发送带背景图html邮件(解决Outlook不显示背景图问题)

    发送带背景图html邮件(解决Outlook不显示背景图问题) (二)示例背景图 (三)示例定义好的html邮件图 (四)html代码 (五)C#邮件发送代码(示例:控制台应用程序) 1.考虑兼容性问 ...

  5. python turtle绘制柱状图_python绘制图形(Turtle模块)

    用python的Turtle模块可以绘制很多精美的图形,下面简单介绍一下使用方法. 需要用到的工具有python,python 的安装这里就不再细说.自行搜索. from turtle import ...

  6. python 三维图直方图_Python | 阶梯直方图

    python 三维图直方图 A histogram is a graphical technique or a type of data representation using bars of di ...

  7. php添加背景图及设置格式,PHP添加PNG图片背景透明水印操作类定义与用法示例

    本文实例讲述了PHP添加PNG图片背景透明水印操作类定义与用法.分享给大家供大家参考,具体如下: 图片相关操作类 class ImageTool { private $imagePath;//图片路径 ...

  8. python窗体加背景图_第二十三篇 -- 为窗体添加背景图片和图标以及设置窗体透明度...

    效果图: play.py #!/usr/bin/env python#_*_ coding: UTF-8 _*_ """========================= ...

  9. 怎么将自己的头像p到特定的背景图_怎么把自己的头像和背景分离出来:用ps抠图...

    抠图的实用性非常强,可以说随时随地都用得上,掌握其中的技巧就显得非常重要了.在使用adobe photoshop(即PS)软件时,有多种抠图的方法,下面是几种最常用的手法,也是最基础的技巧.对于大部分 ...

最新文章

  1. 北大毕业典礼上,一男博士求婚女硕士成功,网友直呼:科研人的爱情太甜了!...
  2. java条件查询excel_[转]EXCEL中的多条件查询(整理)
  3. 【Git】Git 标签使用 ( 查询哈希码 | 创建标签 git tag v1.0 | 查询标签 git tag | 查询标签信息 git show v1.0 | 创建标签并指定说明 | 删除标签 )
  4. lua实现stack(lua程序设计21.7 练习21.1题)
  5. 在Spring中了解事务注释
  6. Linux 网络相关命令
  7. 决策树之 GBDT 算法 - 回归部分
  8. 关于阿拉伯数字转化成为大写汉字
  9. 软件测试准备(摘要)
  10. java回车后自动从一个文本框切换到另一个_Java实用教程-Java基本语法-Java程序的构成...
  11. 郑州大学Oracle期末,郑州大学软件学院2011到2012学年第二学期Oracle期末试卷.doc
  12. petshop 中的 cache机制
  13. spring扫描bean总结
  14. 遗传算法c语言代码实验报告,遗传算法的c语言程序
  15. 微信 iOS 收款到帐语音提醒开发总结
  16. Python Computer Vision Programming学习笔记(一)——Python以及各Package安装
  17. JAVA数组常见例题(转置,排序,求和平均,插入,删除)
  18. 关于Label Bais 最好的解释方式
  19. local_policy.jar和US_export_policy.jar资源免费下载
  20. Linux的route命令

热门文章

  1. 微软亚研院华刚对科研的见解
  2. python解析器是什么_如何用python写一个简单的词法分析器
  3. 上线不到两年 腾讯“小鹅拼拼”被曝即将关停
  4. 星巴克全面上线美团外卖 并联合美团推出“1971客厅”
  5. 荣耀Magic V真机首曝:2022折叠机的引领之作
  6. 万达辟谣王健林去世:已报警!造谣账号已封禁
  7. 微信公布6月朋友圈十大谣言 包括不打疫苗不让上飞机高铁等
  8. 集五福开奖啦!六年累计7亿人参加 今年你中了多少?
  9. 路痴福音!高德地图上线真AR步行导航,可实景指引
  10. “秃如其来”的90后,造就了一个蒸蒸日上的产业