【发布时间】:2021-12-03 12:29:16
【问题描述】:
如何为 3D 形状/点云(在我的例子中是人体)上色,使每个点都有不同的颜色,但从点到点的颜色过渡是平滑的,如图所示下图?
N 个点的形状表示为点坐标x,y,z 的Nx3 数组。我试图简单地将每个点的坐标值x,y,z 转换为r,g,b 颜色值,但结果并不令人满意(例如,根据欧几里德距离彼此接近的一些点被用相似的颜色着色,但是它们应该用不同的颜色着色,因为它们的测地距离很大)。
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
pc = ...
colors = (pc - pc.min()) / (pc.max() - pc.min())
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(pc[1], pc[1], pc[2], c=colors)
plt.show()
【问题讨论】:
-
如何定义测地线?在点之间使用阈值?如果双手几乎接触到欧几里得距离与表面上的点到点距离相似怎么办?我没有您问题的答案,但您可能对pygeodesic、potpourri3d 和this question 感兴趣
标签: python matplotlib data-visualization point-clouds