跳到主要内容

使用

NPM

浏览器

import * as PCL from 'pcl.js';async function main() {  // 初始化  await PCL.init({    // 推荐,可选配置,自定义 WebAssembly 文件链接。    url: 'https://cdn.jsdelivr.net/npm/pcl.js/dist/pcl-core.wasm',    // 你也可以传递一个 WebAssembly 文件的 ArrayBuffer。    // arrayBuffer: ArrayBuffer  });}main();

Node.js

const PCL = require('pcl.js');async function main() {  // 初始化  await PCL.init();  // ...}main();

CDN

<script>async function main() {  // Initialization, PCL is a global object.  await PCL.init();  // ...}main();</script>

简单示例

使用 PassThrough 过滤器过滤点云。 参考: https://pcl.readthedocs.io/projects/tutorials/en/master/passthrough.html#passthrough

TypeScript
import * as PCL from 'pcl.js';async function main() {  await PCL.init({    url: 'https://cdn.jsdelivr.net/npm/pcl.js/dist/pcl-core.wasm',  });  // 获取 PCD 文件  const data = await fetch(    'https://cdn.jsdelivr.net/gh/luoxuhai/pcl.js@master/data/rops_tutorial/points.pcd',  ).then((res) => res.arrayBuffer());  // 加载 PCD 数据,返回点云对象  const cloud = PCL.loadPCDData<PCL.PointXYZ>(data, PCL.PointXYZ);  // 使用 PassThrough 过滤器过滤点云  // 参考: https://pcl.readthedocs.io/projects/tutorials/en/master/passthrough.html#passthrough  const pass = new PCL.PassThrough<PCL.PointXYZ>(PCL.PointXYZ);  pass.setInputCloud(cloud);  pass.setFilterFieldName('z');  pass.setFilterLimits(0.0, 1.0);  const cloudFiltered = pass.filter();  // 将过滤后的点云对象保存为 PCD 文件, 内容为 ArrayBuffer  const cloudFilteredData = PCL.savePCDDataASCII(cloudFiltered);}main();