为了更直观的从3D视角观察一副图像的像素分布,且拖动观察没一个像素细节,可以使用下面代码实现。
目录
- 一、代码
- 二、效果展示
一、代码
使用代码修改修改的地方如下:
具体实现代码如下:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import cv2
# 读取图像
img = cv2.imread('Images/input-resize_480360/4.bmp')
# 获取图像的高度和宽度
h, w = img.shape[:2]
# 创建一个新的图像窗口
fig = plt.figure()
# 创建3D坐标轴
ax = fig.add_subplot(111, projection='3d')
# 获取x, y坐标网格
x, y = np.mgrid[0:h, 0:w]
# 绘制曲面,使用图像的颜色
ax.plot_surface(x, y, img[:,:,0], rstride=1, cstride=1, facecolors=img/255, shade=False)
# 显示图像
plt.show()
二、效果展示
测试图像如下:
将图像读入后,等待就会弹出三维统计图,可以随意拖动观察每个角度,如下: