我有一个三维点云,我想对它们进行三角剖分,并将其保存为.stl文件。我用Delaunay做三角测量:
points = np.array([[x[i], y[i], z[i]] for i in range(len(x))])
tri = Delaunay(points)
但是我找不到一个库,它可以将这个对象保存到.stl文件中。有人知道一个好的解决办法吗?
描述我的三维点云:它只是描述一个曲面,所以对于每个(x,y)只有一个z值。
也许我可以尝试编写自己的STL保护程序,但因此我必须知道tri.simplices到底返回了什么:当我在文档中阅读时,我得到了构成三角形的点的索引--但是tri.
我想用Delaunay算法对三维点云进行三角剖分。为了测试我的代码,我从一个STL文件中提取点云,然后尝试对它进行重新整理。这是我的密码:
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial import Delaunay
#--------------def funtion extract point cloud-------------------
def point_cloud(inp):
node = []
for line in inp:
temp1 = line
我有一个三维空间点云保存在一个铺设文件。
取一个点(x,y,z)作为球体的中心,我想画出整个点云,但是用半径R的球体,它包含点云的几个点,但不是所有的云。
球体应该是相当透明的,以使内部的点可见。
我尝试了以下几点,但没有成功:
% Read point cloud file
ptCloud = pcread('frame0000.ply');
% Show point cloud
pcshow(ptCloud);
hold on
% Sphere generation
[x, y, z] = sphere;
surf(x,y,z)
hold on
% Sphere cen
点云到点云的距离可以简单地使用最近邻距离来计算。问题是最近的邻居不一定是云所代表的表面上的实际最近点。尤其是在我们的情况下:参考云的密度很低。在这种情况下,使用了插值技术(伪代码): from scipy import interpolate
import numpy as np
ref_point_cloud = np.load("ref_point_cloud.npy").item() # Grid
f = interpolate.interp2d(ref_point_cloud['x'], ref_point_cloud['y'], r
我已经用的超级构建成功地构建了点云库
构建的结果与armeabi-v7a ABI的PCL。如何为其他ABI构建?
我尝试过更改pcl-build-for-android.sh脚本,但没有成功。我更改了脚本中的第一行:
#!/bin/bash
# specify the arm as abi, the api level for android kitkat as used by
# google tango and with gnustl_static the c++ support
# for more information look into the android.toolchain
我想要找到PointCloud中所有与屏幕上的像素更接近的点。就像在像素周围投射光线并返回PointCloud点(而不是弧线跟踪点/平面对象)。 我试过使用Frame.hitTest(xPx,yPx),但它只适用于跟踪点,而不适用于PointCloud点,因此它的效果非常有限。需要像素周围的所有点云点(就像光线-将半径为"r“的光束从像素投射到点云中) if (pointCloudIdsArray.length > 0) {
for (int i = 0; i < pointCloudIdsArray.length; i++) {
Stri
我想用opencv的reprojectImageto3D()函数展示我自己生成的点云。这个点云的opencv类型是CV_32FC3,在我的代码中叫做'xyz‘。
我已经用正确的库在一个正确的main()中做了下一步:
.
/// Create a window
viz::Viz3d myWindow("Viz Demo");
/// Start event loop
myWindow.spin();
/// Event loop is over when pressed q, Q, e, E
我试图使用firebase云函数将通知发送到点半径范围内的设备。我能够在圆内获得设备的id,但是我无法获得令牌,令牌是空的,使用console.log(令牌)打印。
const getdevicetokenpromise = db.ref('/DriversAvailable/{key}/token').once('value');
console.log(key); //this value is right
return getdevicetokenpromise.then(result => {
cons
我想旋转并对齐一个以面-顶点形式表示的3d网格模型。如果我的模型是点云形式的,那么3d矩阵的转换就会起作用。我找不到一个函数来将面-顶点信息转换为x,y,z点云信息。
view(-[0 20]);
上面的命令有助于以所需的角度查看图像,但它不会改变面顶点值。我的3d对象是.stl格式的,我使用ftread.m函数将其加载到matlab中。
读取.stl文件的函数
function [fout, vout, cout] = ftread(filename)
% Reads CAD STL ASCII files, which most CAD programs can export.
% Use