我希望使用imshow显示一张图片。这是一张1600x1200的灰度图像,我发现matplotlib使用float32来解码值。加载这张图片需要大约2秒钟的时间,我想知道是否有任何方法可以使其更快。关键是我并不真正需要高分辨率的图片,我只想标记某些点并将图片作为背景绘制。因此,
这是我想做的事情。如果保存在lowres.png中的图片分辨率低于1600x1200(即400x300),它将像应该显示的那样显示在左上角。如何将其缩放到整个1600x1200像素区域?如果运行此程序,则下面的canvas.draw()命令是慢速部分。也许有一种方法可以加快此命令吗?
提前感谢您!
根据您的建议,我已经更新到最新版本的matplotlib
版本1.1.0svn,检查8988
我还使用以下代码:
- 第一个问题:对于这样的图像,2秒钟的性能表现良好还是可以加速。
- 第二个问题:如果性能表现良好,如何通过降低分辨率来加速处理过程。重要提示:最终我仍然希望图像可以延伸到1600x1200像素。
我的代码:
import matplotlib
import numpy
plotfig = matplotlib.pyplot.figure()
plotwindow = plotfig.add_subplot(111)
plotwindow.axis([0,1600,0,1200])
plotwindow.invert_yaxis()
img = matplotlib.pyplot.imread("lowres.png")
im = matplotlib.pyplot.imshow(img,cmap=matplotlib.cm.gray,origin='centre')
plotfig.set_figwidth(200.0)
plotfig.canvas.draw()
matplotlib.pyplot.show()
这是我想做的事情。如果保存在lowres.png中的图片分辨率低于1600x1200(即400x300),它将像应该显示的那样显示在左上角。如何将其缩放到整个1600x1200像素区域?如果运行此程序,则下面的canvas.draw()命令是慢速部分。也许有一种方法可以加快此命令吗?
提前感谢您!
根据您的建议,我已经更新到最新版本的matplotlib
版本1.1.0svn,检查8988
我还使用以下代码:
img = matplotlib.pyplot.imread(pngfile)
img *= 255
img2 = img.astype(numpy.uint8)
im = self.plotwindow.imshow(img2,cmap=matplotlib.cm.gray, origin='centre')
尽管如此,仍需要大约2秒钟才能显示图像...还有其他的想法吗?
补充一下:我发现了以下功能
因此,原则上matplotlib应该能够完成任务。在那里,也可以以“缩放”的方式绘制图片...