我目前正在评估不同的python绘图库.现在我正在尝试使用matplotlib,我对性能非常失望.以下示例是从SciPy示例中修改的,并且每秒仅给出~8帧!
有什么方法可以加快速度,或者我应该选择不同的绘图库?
from pylab import *
import time
ion()
fig = figure()
ax1 = fig.add_subplot(611)
ax2 = fig.add_subplot(612)
ax3 = fig.add_subplot(613)
ax4 = fig.add_subplot(614)
ax5 = fig.add_subplot(615)
ax6 = fig.add_subplot(616)
x = arange(0,2*pi,0.01)
y = sin(x)
line1, = ax1.plot(x, y, 'r-')
line2, = ax2.plot(x, y, 'g-')
line3, = ax3.plot(x, y, 'y-')
line4, = ax4.plot(x, y, 'm-')
line5, = ax5.plot(x, y, 'k-')
line6, = ax6.plot(x, y, 'p-')
# turn off interactive plotting - speeds things up by 1 Frame …
Run Code Online (Sandbox Code Playgroud) 我需要可视化2D numpy数组.我正在使用pyplot.这是代码:
import cv2 as cv
import numpy as np
from matplotlib import pyplot
img = pyplot.imshow( radiance_val )
#radiance_val is a 2D numpy array of size = ( 512, 512 )
#filled with np.float32 values
pyplot.show()
Run Code Online (Sandbox Code Playgroud)
我按预期获得输出.
现在我的问题是,有没有办法将上面的代码中的"img"从pyplot类型转换为numpy类型.我需要这个,以便我可以将可视化加载为opencv图像并对其执行进一步处理.我正在使用python 2.7,32位.
请帮助
谢谢
编辑1:在Thorsten Kranz的解决方案之后
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
import PIL
from cStringIO import StringIO
frame1 = plt.gca()
frame1.axes.get_xaxis().set_visible(False)
frame1.axes.get_yaxis().set_visible(False)
plt.imshow(np.random.random((10,10)))
buffer_ = StringIO()
plt.savefig( buffer_, format = "png", bbox_inches = 'tight', pad_inches …
Run Code Online (Sandbox Code Playgroud)