Blu*_*mon 3 python plot smooth matplotlib
假设我有一个灰度图像(大小:550x150像素).我用matplolib加载图像
import matplotlib.pyplot as plt
import matplotlib.image as mp_img
image = mp_img.imread("my-cat.png")
plt.imshow(image)
plt.show()
Run Code Online (Sandbox Code Playgroud)
现在,plt.imshow在屏幕上显示图像.但我想要的是灰度值的表面图,如下所示:

.Colour并不是必需品,但它对高度线有帮助.我知道,我需要一个表单函数f(x,y) -> z来创建表面图.所以,我想(x_pixel,y_pixel)在我的图像中使用灰度值来获取值f.这导致了我的问题:
hit*_*tzg 13
所以这非常简单.加载数据,构建图:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# generate some sample data
import scipy.misc
lena = scipy.misc.lena()
# downscaling has a "smoothing" effect
lena = scipy.misc.imresize(lena, 0.15, interp='cubic')
# create the x and y coordinate arrays (here we just use pixel indices)
xx, yy = np.mgrid[0:lena.shape[0], 0:lena.shape[1]]
# create the figure
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_surface(xx, yy, lena ,rstride=1, cstride=1, cmap=plt.cm.gray,
linewidth=0)
# show it
plt.show()
Run Code Online (Sandbox Code Playgroud)
结果:
| 归档时间: |
|
| 查看次数: |
8302 次 |
| 最近记录: |