平滑 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()
相关推荐
bin9153几秒前
当AI化身Git管家:初级C++开发者的版本控制焦虑与创意逆袭——老码农的幽默生存指南
c++·人工智能·git·工具·ai工具
上海云盾-小余4 分钟前
警惕 “伪装型” CC 攻击!通过日志分析识别异常请求,让恶意访问无所遁形
人工智能·安全·架构
Coding茶水间4 分钟前
基于深度学习的面部口罩检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
WenGyyyL7 分钟前
深度学习数学基础(一)——线性代数、线性代数和微积分
人工智能·深度学习·线性代数
musk121211 分钟前
YOLOv8n模型微调全指南:从环境搭建到技能储备 (内容由 AI 生成)
人工智能·yolo
JeffyW13 分钟前
Claude Agent 长时间运行实践指南
人工智能
爱笑的眼睛1113 分钟前
Flask应用API深度开发:从单体架构到微服务设计模式
java·人工智能·python·ai
LHZSMASH!13 分钟前
基于动态图卷积与时间自注意力的EEG情绪识别混合网络——深度技术解析
人工智能·深度学习
彼岸花开了吗19 分钟前
构建AI智能体:四十、K-Means++与RAG的融合创新:智能聚类与检索增强生成的深度应用
人工智能·python
趁你还年轻_19 分钟前
检索增强生成 RAG
人工智能