我是matplotlib和python的新手,想要显示一个图像,这样图像的1个像素实际上由图中的1个像素表示。在MATLAB中,这是通过命令truesize()
实现的。我怎么能用Python做到这一点?
我尝试使用imshow()
参数以及set_dpi()
和set_figwidth()/set_figheight()
,但没有运气。
感谢。
答案 0 :(得分:1)
如果您想要创建图像直到像素级别,为什么不首先use PIL?这样,您就不必通过从图形扩展中减去边距,标签和轴宽来以编程方式计算您的真实绘图区域。
答案 1 :(得分:0)
这个黑客做了我想做的事,虽然它仍然不完美:
h = mplt.imshow(img, interpolation='nearest')
dpi = h.figure.get_dpi()
h.figure.set_figwidth(img.shape[0] / dpi)
h.figure.set_figheight(img.shape[1] / dpi)
h.figure.canvas.resize(img.shape[1] + 1, img.shape[0] + 1)
h.axes.set_position([0, 0, 1, 1])
h.axes.set_xlim(-1, img.shape[1])
h.axes.set_ylim(img.shape[0], -1)
可以推广它来考虑保持图像的轴周围的边距。