IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python三维点云投影(二) -> 正文阅读

[人工智能]python三维点云投影(二)

python点云投影样例,投影知识和理论分析见:三维点云投影(一)_Coding的叶子的博客-CSDN博客

数据来源:modelnet40点云样例数据-深度学习文档类资源-CSDN下载

一、python代码

# -*- coding: utf-8 -*-
"""
Created on Tue Apr 12 22:34:18 2022

@author: Administrator
"""

from mayavi import mlab
import numpy as np

def viz_mayavi(points):
    x = points[:, 0]  # x position of point
    y = points[:, 1]  # y position of point
    z = points[:, 2]  # z position of point
    fig = mlab.figure(bgcolor=(0, 0, 0), size=(640, 360))
    mlab.points3d(x, y, z,
                          y,          # Values used for Color
                          mode="point",
                          colormap='spectral', # 'bone', 'copper', 'gnuplot'
                          # color=(0, 1, 0),   # Used a fixed (r,g,b) instead
                          figure=fig,
                          )
    mlab.show()

#定义平面方程Ax+By+Cz+D=0
#以z=0平面为例,即在xy平面上的投影A=0, B=0, C=1(任意值), D=0
#para[0, 0, 1, 0]
def point_project(points, para):
    x = points[:, 0]  # x position of point
    y = points[:, 1]  # y position of point
    z = points[:, 2]  # z position of point
    d = para[0]**2 + para[1]**2 + para[2]**2
    t = -(para[0]*x  + para[1]*y + para[2]*z + para[3])/d
    x = para[0]*t + x
    y = para[1]*t + y
    z = para[2]*t + z
    return np.array([x, y, z]).T

#矩阵写法
#定义平面方程Ax+By+Cz+D=0
#以z=0平面为例,即在xy平面上的投影A=0, B=0, C=1(任意值), D=0
#para[0, 0, 1, 0]
def point_project_array(points, para):
    para  = np.array(para)
    d = para[0]**2 + para[1]**2 + para[2]**2
    t = -(np.matmul(points[:, :3], para[:3].T) + para[3])/d
    points = np.matmul(t[:, np.newaxis], para[np.newaxis, :3]) + points[:, :3]
    return points
    
    
if  __name__ == '__main__':
    points = np.loadtxt('airplane_0001.txt', delimiter=',')
    #显示原始点云
    #viz_mayavi(points)

    #定义平面方程Ax+By+Cz+D=0
    #以z=0平面为例,即在xy平面上的投影A=0, B=0, C=1(任意值), D=0
    project_pane = [0, 0, 1, 0]
    points_new = point_project_array(points, project_pane)
    viz_mayavi(points_new)
    

二、图片展示结果

投影图片:

?

原始图片:

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-14 23:56:33  更:2022-04-15 00:02:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:38:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码