使用pyvista显示有透明度信息的点云数据

本文介绍了一个如何使用pyvista替代open3d来显示具有透明度的三维点云的函数。通过numpy处理体素数据,计算每个点的透明度值,并将其应用到pyvista的PolyData对象中,最终通过matplotlib的Plotter展示带透明度的点云图。
摘要由CSDN通过智能技术生成

open3d无法显示点云的透明度,于是,这回使用pyvista。

这里面是一个函数,函数的输入是一个N*N*N的体素,numpy的array。

import numpy as np
import os
import matplotlib.pyplot as plt
from skimage.io import imread
import pyvista as pv
def Display(vols):
    if len(vols.shape)!=3:
        return
    nz,ny,nx=vols.shape
    points=[]
    alpha=[]
    for iz in range(nz):
        for iy in range(ny):
            for ix in range(nx):
                points.append([ix,iy,iz])
                alpha.append(vols[iz,iy,ix])
    points=np.array(points)
    alpha=np.array(alpha)

    cloud=pv.PolyData(points)
    cloud['alpha']=alpha

    plotter=pv.Plotter()
    plotter.add_mesh(cloud,scalars="alpha",cmap='coolwarm',opacity='linear')
    plotter.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值