当前位置:   article > 正文

利用matplotlib将图片放入三维坐标里_将二维图像放在三维坐标

将二维图像放在三维坐标

如何将二维图片放入三维坐标里显示,我是分三步做的:

1.读取二维图片,获取图片的尺寸

  1. img = Image.open("/Users/yuhao/Desktop/timg.jpg")
  2. x = img.size[0]
  3. y = img.size[1]

2.循环遍历图片的所有像素,将其每一个像素所代表的颜色转换为颜色代码

  1. for i in range(x):
  2. for j in range(y):
  3. r = hex(img.getpixel((i, j))[0])[2:]
  4. b = hex(img.getpixel((i, j))[1])[2:]
  5. g = hex(img.getpixel((i, j))[2])[2:]
  6. if len(r) == 1:
  7. r = '0' + r
  8. if len(b) == 1:
  9. b = '0' + b
  10. if len(g) == 1:
  11. g = '0' + g
  12. col = '#' + r + b + g

3.在循环遍历的同时把二维图片每一个像素点放入三维坐标(需要指定z坐标的位置)

ax.scatter(i, j, 5, c=col, alpha=0.5)

输入数据:

 

输出数据:

 

完整代码:

  1. from PIL import Image
  2. from mpl_toolkits.mplot3d import Axes3D
  3. import matplotlib.pyplot as plt
  4. fig = plt.figure()
  5. ax = Axes3D(fig)
  6. img = Image.open("/Users/yuhao/Desktop/timg.jpg")
  7. x = img.size[0]
  8. y = img.size[1]
  9. for i in range(x):
  10. for j in range(y):
  11. r = hex(img.getpixel((i, j))[0])[2:]
  12. b = hex(img.getpixel((i, j))[1])[2:]
  13. g = hex(img.getpixel((i, j))[2])[2:]
  14. if len(r) == 1:
  15. r = '0' + r
  16. if len(b) == 1:
  17. b = '0' + b
  18. if len(g) == 1:
  19. g = '0' + g
  20. col = '#' + r + b + g
  21. # col = '#FF00FF'
  22. ax.scatter(i, j, 5, c=col, alpha=0.5)
  23. plt.show()

 

提示:我的想法是对每一个像素来进行操作,所以说绘图的速度会超级慢!!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/90335
推荐阅读
相关标签
  

闽ICP备14008679号