python - 在python中将数组显示为光栅图像

标签 python image image-processing numpy

我在 Python 中有一个 numpy 数组,我想在屏幕上将它显示为光栅图像。最简单的方法是什么?它不需要特别花哨或有一个漂亮的界面,我需要做的就是将数组的内容显示为灰度光栅图像。

我正在尝试使用 NumPy 将我的一些 IDL 代码转换为 Python,并且基本上正在寻找 IDL 中 tvtvscl 命令的替代品。

最佳答案

根据您的需要,matplotlib's imshowglumpy可能是最好的选择。

Matplotlib 无限灵活,但速度较慢(即使您做对了所有事情,matplotlib 中的动画也可能非常耗费资源。)。但是,您将拥有一个非常棒的功能齐全的绘图库。

Glumpy 非常适合快速、基于 openGL 的 2D numpy 数组的显示和动画,但它的功能更加有限。不过,如果您需要为一系列图像制作动画或实时显示数据,那么它是比 matplotlib 更好的选择。

使用 matplotlib(使用 pyplot API 代替 pylab):

import matplotlib.pyplot as plt
import numpy as np

# Generate some data...
x, y = np.meshgrid(np.linspace(-2,2,200), np.linspace(-2,2,200))
x, y = x - x.mean(), y - y.mean()
z = x * np.exp(-x**2 - y**2)

# Plot the grid
plt.imshow(z)
plt.gray()
plt.show()

使用 glumpy:

import glumpy
import numpy as np

# Generate some data...
x, y = np.meshgrid(np.linspace(-2,2,200), np.linspace(-2,2,200))
x, y = x - x.mean(), y - y.mean()
z = x * np.exp(-x**2 - y**2)

window = glumpy.Window(512, 512)
im = glumpy.Image(z.astype(np.float32), cmap=glumpy.colormap.Grey)

@window.event
def on_draw():
    im.blit(0, 0, window.width, window.height)
window.mainloop()

关于python - 在python中将数组显示为光栅图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886281/

相关文章:

Python 调用 grep 失败

Python 2.7 IDLE 在 Mac OSX 上不断崩溃

java - YUV图像处理

html - 如何将图像固定在网站的其余部分下方?

java - 向导式图像处理App架构

python - 在 __init__ of forms.Form 中更改 ModelChoiceField 的查询集

python - 创建一个数字序列并在达到特定数字时重置自身

image - MATLAB 到 Julia RGB 图像转换

matlab - Mathematica 和 Matlab 哪个更适合图像处理学习/原型(prototype)设计?

image-processing - 全局池有什么作用?