python - 如何将matplotlib绘图数据作为numpy数组
问题描述
我将图绘制为:
plt.imshow(image, cmap='gray', interpolation='none')
plt.imshow(masked_contour, cmap='cool', interpolation='none', alpha=0.7)
plt.show()
该图以灰度显示,内部带有蓝色轮廓。
现在我想把这个数字作为一个numpy
数组(也不是一个掩码数组)。一种方法是,将绘图保存为图像,然后从那里读取。有没有更好的方法?
解决方案
fig = plt.figure(figsize=(20, 20)) # this is imp for sizing
# plot
plt.imshow(image, cmap='gray', interpolation='none')
plt.imshow(masked_contour, cmap='cool', interpolation='none', alpha=0.7)
# get image as np.array
canvas = plt.gca().figure.canvas
canvas.draw()
data = np.frombuffer(canvas.tostring_rgb(), dtype=np.uint8)
image = data.reshape(canvas.get_width_height()[::-1] + (3,))
# (Optional) show image
plt.imshow(image)
plt.show()
推荐阅读
- flutter - 如果文本包含主题标签“#”,则更改文本颜色
- php - 我想在php中对数组进行排序
- kubernetes - 在 KUBERNETES 上没有持久性的 REDIS 集群
- nginx - 从暂存环境复制到生产环境时,恢复 Wagtail CMS 媒体文件夹时出现问题
- javascript - 无法在我的项目中创建 Gulp dist 文件夹
- java - 使 substring() 方法忽略某些字符
- python - numpy的转置方法无法将一维行ndarray转换为一列
- javascript - 如何遍历对象并更改数据集中的属性键
- extjs - 使用 ExtWebComponents 我如何创建一个简单的视图?
- regex - 正则表达式匹配 SQL 脚本 SSMS 中的最后一个方括号