Python Matplotlib 3D缩小了z轴的比例

时间:2015-08-14 17:00:05

标签: python image-processing matplotlib

我尝试为图像处理类渲染经典的rice.png图像,但我无法得到我想要的结果。

import matplotlib.pyplot as plt
import numpy as np

from scipy import misc
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D

# rice.png is the image one can find on the internet
rice = misc.imread('rice.png')
height, width = rice.shape
fig = plt.figure(2)
ax = fig.gca(projection='3d')
X = np.arange(0, height, 1)
Y = np.arange(0, width, 1)
X, Y = np.meshgrid(X, Y)

surf = ax.plot_surface(X, Y, rice, cmap=cm.coolwarm, linewidth=0)
plt.title('3D representation of image')
plt.show()

但这给了我这个:graphe

我尝试使用set_zticks,但是滴答声溢出,如上图所示,我也尝试了可以​​看到here的解决方案,但它也会溢出和/或效果不佳。

我的目标是拥有可以看到的东西in the paragraph我该怎么办?

[编辑]我已经看过this问题给出了一个不太完整的答案,即我之前给出的另一个链接中可以找到的内容(覆盖项目的想法)。

但是,我对结果不满意。首先,因为这意味着我必须更改matplotlib库中的函数(如果我遵循SO解决方案),并且我将与我班级的其他学生共享我的代码,我不想这样做。然后因为它没有给我相同的结果(见后文)它不会使图像居中,只是改变比例然后剪切上面的部分。

enter image description here

[edit2]更新代码

0 个答案:

没有答案