ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何使用Matplotlib从灰度图像创建表面图?

2019-07-15 08:58:04  阅读:223  来源: 互联网

标签:python matplotlib plot smooth


假设我有一个灰度图像(大小:550×150像素).我用matplolib加载图像

import matplotlib.pyplot as plt
import matplotlib.image as mp_img
image = mp_img.imread("my-cat.png")
plt.imshow(image)
plt.show()

现在,plt.imshow在屏幕上显示图像.但我想要的是灰度值的表面图,如下所示:

.Colour并不是必需品,但它对高度线有帮助.我知道,我需要一个f(x,y)形式的函数 – > z创建表面图.所以,我想在我的图像中使用(x_pixel,y_pixel)处的灰度值来获得f的值.这导致了我的问题:

>我想在绘图期间对我的图像值进行一些插值(例如平滑).这还取决于我的meshgrid的大小,所以我该如何控制它?和,
>如何从我的图像中制作灰度值的曲面图?

解决方法:

所以这非常简单.加载数据,构建图:

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()

结果:

enter image description here

标签:python,matplotlib,plot,smooth
来源: https://codeday.me/bug/20190715/1466209.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有