平滑 3d 坐标

3d平滑

python 复制代码
import torch
import torch.nn.functional as F
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

class SmoothOperator:
    def smooth(self, vertices):
        # 使用一维平均池化进行平滑
        vertices_smooth = F.avg_pool1d(
            vertices.permute(0, 2, 1),
            kernel_size=3,
            stride=1,
            padding=1
        ).permute(0, 2, 1)
        # 保持顶点的首尾不变,只修改中间部分
        vertices[:, 1:-1] = vertices_smooth[:, 1:-1]
        return vertices

# 创建一些示例数据
t = np.linspace(0, 2 * np.pi, 100)
x = np.sin(t) + np.random.normal(0, 0.1, t.shape)  # 添加一些噪声
y = np.cos(t) + np.random.normal(0, 0.1, t.shape)
z = t
vertices = torch.tensor(np.stack([x, y, z], axis=1), dtype=torch.float32).unsqueeze(0)

# 实例化平滑操作对象并应用平滑
smooth_operator = SmoothOperator()
vertices_smooth = smooth_operator.smooth(vertices.clone())

# 将PyTorch张量转换为NumPy数组以用于绘图
vertices_np = vertices.squeeze(0).numpy()
vertices_smooth_np = vertices_smooth.squeeze(0).numpy()

# 创建图形和3D轴
fig = plt.figure(figsize=(12, 6))

# 绘制原始数据
ax1 = fig.add_subplot(121, projection='3d')
ax1.plot(vertices_np[:, 0], vertices_np[:, 1], vertices_np[:, 2], label='Original', color='b')
ax1.set_title("Original Data")
ax1.legend()

# 绘制平滑后的数据
ax2 = fig.add_subplot(122, projection='3d')
ax2.plot(vertices_smooth_np[:, 0], vertices_smooth_np[:, 1], vertices_smooth_np[:, 2], label='Smoothed', color='r')
ax2.set_title("Smoothed Data")
ax2.legend()

# 显示图形
plt.show()
相关推荐
TonyLee0174 分钟前
新型学习范式(机器学习)
人工智能·学习·机器学习
Deepoch4 分钟前
Deepoc具身大模型居家机器人:重新定义家庭智能服务新标准
人工智能·机器人·具身模型·deepoc·居家机器人·居家好物·智能居家
ucancode5 分钟前
AI --> Mermaid --> 图形可视化 (UI)
人工智能·ui·ai·mermaid
小李AI飞刀^_^8 分钟前
AlphaEarth Foundations:面向全球尺度的嵌入场模型
人工智能
KmBase10 分钟前
【AI】从同构到多态:AGI的可能之路
人工智能·agi
翱翔的苍鹰14 分钟前
完整的“RNN + jieba 中文情感分析”项目之一:需要添加添加 JWT 认证
人工智能·python·rnn
minhuan15 分钟前
大模型应用:拆解大模型算力需求:算力是什么?怎么衡量?如何匹配?.64
人工智能·gpu算力·大模型应用·算力评估·算力优化
凤希AI伴侣16 分钟前
凤希AI伴侣功能修复与积分系统上线-2026年1月23日
人工智能·凤希ai伴侣
Cherry的跨界思维20 分钟前
【AI测试全栈:质量】40、数据平权之路:Python+Java+Vue全栈实战偏见检测与公平性测试
java·人工智能·python·机器学习·ai测试·ai全栈·ai测试全栈
北京盟通科技官方账号20 分钟前
从“人机交互”到“数字预演”:详解 HMI、SCADA 与虚拟调试的闭环架构
人工智能·人机交互·数字孪生·scada·系统集成·hmi·虚拟调试