如何将最新的 iPad Pro 上的ARMeshGeometry
新SceneReconstruction
API生成的导出到.obj
文件中?
这是SceneReconstruction文档。
我正在使用激光雷达的 3D 点云。这些点由 numpy 数组给出,如下所示:
points = np.array([[61651921, 416326074, 39805], [61605255, 416360555, 41124], [61664810, 416313743, 39900], [61664837, 416313749, 39910], [61674456, 416316663, 39503], [61651933, 416326074, 39802], [61679969, 416318049, 39500], [61674494, 416316677, 39508], [61651908, 416326079, 39800], [61651908, 416326087, 39802], [61664845, 416313738, 39913], [61674480, 416316668, 39503], [61679996, 416318047, 39510], [61605290, 416360572, 41118], [61605270, 416360565, 41122], [61683939, 416313004, 41052], [61683936, 416313033, 41060], [61679976, 416318044, 39509], [61605279, 416360555, 41109], [61664837, 416313739, 39915], [61674487, 416316666, 39505], [61679961, 416318035, 39503], [61683943, 416313004, 41054], [61683930, 416313042, 41059]])
Run Code Online (Sandbox Code Playgroud)
我想将我的数据分组到大小的立方体中, …
我正在开发一个原型,它应该能够扫描现实世界的物体并创建它的 3D 表示。然后,它需要获取有关该对象的空间数据(例如对象的宽度、高度和深度)。
目前,我已经能够使用以下指南创建对象的 3D 扫描:https://medium.com/zeitraumgruppe/what-arkit-3-5-and-the-new-ipad-pro-bring-to -表-d4bf25e5dd87
然后我就可以使用 SceneKit 查看该 3D 模型,并将其导出到计算机,但是我仍然需要弄清楚如何在手机上获取对象的空间尺寸。
我想我还需要“裁剪”掉激光雷达传感器捕获的一些不需要的数据(例如物体的地板)。另一种解决方案可能是仅“扫描”预定义边界框内的内容,就像 Apple 正在“扫描和检测 3D 对象”所做的那样,如下所示:https ://developer.apple.com/documentation/arkit/content_anchors /scanning_and_Detecting_3d_objects
然而,我也不知所措,我应该在哪里寻找更准确的信息。
有小费吗?
我是python的新手,并一直在努力学习如何使用numpy和scipy.我有一个由LAS数据[x,y,z,强度,分类]组成的numpy数组.我创建了一个cKDTree点,并使用query_ball_point找到了最近的邻居.我想找到query_ball_point返回的邻居的z值的标准偏差,它返回该点及其邻居的索引列表.
有没有办法过滤filtered__rows来创建一个只有点的数组,其索引在query_ball_point返回的列表中?见下面的代码.我可以将值附加到列表并从中计算std dev,但我认为使用numpy在单个轴上计算std dev会更容易.提前致谢.
# Import modules
from liblas import file
import numpy as np
import scipy.spatial
if __name__=="__main__":
'''Read LAS file and create an array to hold X, Y, Z values'''
# Get file
las_file = r"E:\Testing\kd-tree_testing\LE_K20_clipped.las"
# Read file
f = file.File(las_file, mode='r')
# Get number of points from header
num_points = int(f.__len__())
# Create empty numpy array
PointsXYZIC = np.empty(shape=(num_points, 5))
# Load all LAS points into numpy array
counter = 0
for p in …
Run Code Online (Sandbox Code Playgroud) 我希望能够从 iPad Pro 激光雷达导出网格和纹理。
这里有如何导出网格的示例,但我也希望能够导出环境纹理
ARKit 3.5 – 如何使用 LiDAR 从新 iPad Pro 导出 OBJ?
ARMeshGeometry 存储网格的顶点,是否必须在扫描环境时“记录”纹理并手动应用它们?
这篇文章似乎展示了一种获取纹理坐标的方法,但我看不到使用 ARMeshGeometry 做到这一点的方法:将 ARFaceGeometry 保存到 OBJ 文件
任何指向正确方向的点,或要看的东西,非常感谢!
克里斯
基本上,我正在寻找一个库或SDK来处理来自LIDAR或扫描仪的大点云,通常会遇到数百万个X,Y,Z,Color点.我所追求的如下:
快速显示,缩放,平移点云登记快速低级访问数据回归曲面和实体(不像其他那样重要)
虽然我不介意为合理的商业图书馆付费,但我对一个非常昂贵的图书馆(例如超过大约5万美元)或者每个用户运行时许可证成本感兴趣.开源也会很好.我通过谷歌找到了一些可能性,但它们对我的预算来说都太贵了.
我正在努力加快我的脚本.它基本上用Velodyne的Lidar HDL-32信息读取pcap文件,并允许我获得X,Y,Z和Intensity值.我已经使用了我的脚本python -m cProfile ./spTestPcapToLas.py
,它在我的readDataPacket()
函数调用中花费了大量的时间.在小测试(80 MB文件)中,解包部分占用大约56%的执行时间.
我这样调用readDataPacket
函数(chunk
指的是pcap文件):
packets = []
for packet in chunk:
memoryView = memoryview(packet.raw())
udpDestinationPort = unpack('!h', memoryView[36:38].tobytes())[0]
if udpDestinationPort == 2368:
packets += readDataPacket(memoryView)
Run Code Online (Sandbox Code Playgroud)
该readDataPacket()
功能本身的定义是这样的:
def readDataPacket(memoryView):
firingData = memoryView[42:]
firingDataStartingByte = 0
laserBlock = []
for i in xrange(firingBlocks):
rotational = unpack('<H', firingData[firingDataStartingByte+2:firingDataStartingByte+4])[0]
startingByte = firingDataStartingByte+4
laser = []
for j in xrange(lasers):
distanceInformation = unpack('<H', firingData[startingByte:(startingByte + 2)])[0] * 0.002
intensity = unpack('<B', firingData[(startingByte …
Run Code Online (Sandbox Code Playgroud) Swift 有没有办法检查设备是否有 LiDAR 传感器?不幸的是,我在苹果官方纪录片和互联网搜索中都没有找到任何信息。
我当前的解决方法是确定设备类型,如本文中所述: 如何确定当前的 iPhone/设备型号?
谢谢
我正在尝试从 ARKit 场景重建网格创建的 3D 模型中获取纹理。我可以将网格导出到 .obj 文件中。该框架还创建 .mtl 文件。但是,网格中没有颜色。我想将真实世界的纹理添加到网格中,可以从 arFrame.capturedImage 中添加,以使模型看起来更真实。我怎样才能实现这个目标?
激光雷达数据只是 3D 坐标,通常采用las
文件格式。\xd0\xa1内容示例
library(rgdal)\nlibrary(raster)\nlibrary(tmap)\nlibrary(tmaptools)\nlibrary(lidR)\nlibrary(RStoolbox)\nlas_cat <- readLAScatalog("C:/1/078-638.las")\nsummary(las_cat)\nopt_chunk_size(las_cat) <- 500\nplot(las_cat, chunk_pattern = TRUE)\nlas_cat\n#> class : LAScatalog (v1.2 format 1)\n#> extent : 637999, 638240.5, 6077999, 6079999 (xmin, xmax, ymin, ymax)\n#> coord. ref. : NA \n#> area : 483081.1 units\xc2\xb2\n#> points : 3.68 million points\n#> density : 7.6 points/units\xc2\xb2\n#> density : 5.6 pulses/units\xc2\xb2\n#> num. files : 1\n
Run Code Online (Sandbox Code Playgroud)\n有没有办法获得data.frame
R 的典型点坐标?\n作为示例,我们可以使用来自此http://data.wvgis.wvu.edu/elevation/的数据。\n此外,有没有办法获得角度反射,data.frame
激光雷达文件中的反射数量?