使用
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>
提示
推荐使用 CDN 加载pcl-core.wasm
jsdelivr: https://cdn.jsdelivr.net/npm/pcl.js/dist/pcl-core.wasm
unpkg: https://unpkg.com/pcl.js/dist/pcl-core.wasm
简单示例
使用 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();