vue项目使用pcl.js展示.pcd/.bin点云文件

news2024/12/29 11:03:13

vue项目使用pcl展示.pcd/.bin点云文件

  • 1.安装pcl.js
    • 2.在页面引入pcl及相关js
    • 3.开始实例化
    • 4.绘制画布
    • 注意:报错原因大部分是因为版本改动函数或者方法导致找不到函数或者方法,注意版本!!!

在这里插入图片描述

1.安装pcl.js

npm install pcl.js

安装的时候要注意版本
pcl.js官网
官网的事例比较老 我在这边用的版本是
在这里插入图片描述

2.在页面引入pcl及相关js

import * as PCL from 'pcl.js'
import PointCloudViewer from 'pcl.js/dist/visualization/PointCloudViewer.esm.js'

在这里插入图片描述
这个路径如果报错 需要自己在node_modules中找到并写出合适的位置
在这里插入图片描述

3.开始实例化

这里是官网的ts版本
在这里插入图片描述
申明了全局变量
在这里插入图片描述

	async main(row) {
			this.loadingBin = true
			await PCL.init({
				url: 'https://cdn.jsdelivr.net/npm/pcl.js/dist/pcl-core.wasm'
			}).catch((e) => {
				console.log(e)
			})
			// 获取 PCD 文件
			// console.log('this.getViewFilePath(row)', this.getViewFilePath(row))
			//调去接口 将.bin文件转化成.pcd文件
			const data = await fetch('/api/bin2x/pcd?binPath=' + row.fileUrl, {
				headers: {
					token: common.getCookies(globalConfig.tokenKeyName)
				}
			}).then((res) => {
				console.log('res', res)
				return res.arrayBuffer()
			})
			//这里深拷贝的原因是打包会报错
			cloudPoint = _.cloneDeep(PCL.PointXYZ)
			cloudPoint.name = 'PointXYZ'
			// 加载PCD文件数据,返回点云对象
			cloud = PCL.loadPCDData(data, cloudPoint)
			// 使用 StatisticalOutlierRemoval 过滤器去除异常值
			// 参考: https://pcl.readthedocs.io/projects/tutorials/en/master/statistical_outlier.html#statistical-outlier-removal
			const sor = new PCL.StatisticalOutlierRemoval(cloudPoint)
			sor.setInputCloud(cloud)
			sor.setMeanK(40)
			sor.setStddevMulThresh(1.0)
			console.log('sor', sor)
			cloudFiltered = sor.filter()
			console.log(cloudFiltered)
			// 将过滤后的点云对象保存为PCD文件,内容为ArrayBuffer
			// const cloudFilteredData = PCL.savePCDDataASCII(cloudFiltered)
			// console.log(cloudFilteredData)
			this.$nextTick(() => {
				this.showPointCloud()//绘制画布展示点云文件
			})
		},
	

官网中这个方法是需要arraybuffer类型 所以上面return的ArrayBuffer
在这里插入图片描述

4.绘制画布

使用canvas

	<canvas id="canvas" style="padding: 10px"></canvas>
		showPointCloud() {
			this.loadingBin = false
			viewer = new PointCloudViewer(
				document.getElementById('canvas'),
				 window.innerWidth,
    window.innerHeight
			)
			viewer.addPointCloud(cloud)
			viewer.setPointCloudProperties({ color: '#F00' })
			viewer.setAxesHelper({ visible: true, size: 1 })
			viewer.setCameraParameters({ position: { x: 0, y: 0, z: 1.5 } })
			window.addEventListener('resize', () => {
				viewer.setSize(window.innerWidth,
    window.innerHeight)
			})
		},

注意:报错原因大部分是因为版本改动函数或者方法导致找不到函数或者方法,注意版本!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux开发工具之编辑器vim

文章目录 1.vim是啥?1.1问问度娘1.2自己总结 2.vim的初步了解2.1进入和退出2.2vim的模式1.介绍2.使用 3.vim的配置3.1自己配置3.2下载插件3.3安装大佬配置好的文件 4.程序的翻译 1.vim是啥? 1.1问问度娘 1.2自己总结 vi/vim都是多模式编辑器&#xff0c;vim是vi的升级版本&a…

Windows搭建minio存储

minio功能类似以ftp 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.下载软件 https://dl.min.io/server/minio/release/windows-amd64/minio.exe 2.部署配置 我是在D盘下创建了minio目录 minio.exe是软件minio.log是日志&#xff08;不用创建&#xff09;minio900…

Milvus Cloud——Agent 框架工作方式

Agent 框架工作方式 我们以 AutoGPT 为例&#xff0c;看看一个 Agent 框架具体是如何工作的&#xff1a; AutoGPT[2] 使用 GPT-4 来生成任务、确定优先级并执行任务&#xff0c;同时使用插件进行互联网浏览和其他访问。AutoGPT 使用外部记忆来跟踪它正在做什么并提供上下文&am…

数据公网传输加密隧道技术

参考&#xff1a; https://wenku.baidu.com/view/c2bfb9b4d6bbfd0a79563c1ec5da50e2524dd1a1.html?wkts1699578126402

4.Pod详解

4.Pod详解 文章目录 4.Pod详解4.1 Pod介绍4.1.1 Pod结构4.1.2 Pod定义4.1.3 在kubernetes中基本所有资源的一级属性都是一样的&#xff0c;主要包含5部分&#xff1a;4.1.4 在上面的属性中&#xff0c;spec是接下来研究的重点&#xff0c;继续看下它的常见子属性: 4.2 Pod配置4…

scitb包1.5版本发布—增加了统计值的结果和自动判断数据是否正态分布的功能

目前&#xff0c;本人写的scitb包1.5版本已经正式在R语言官方CRAN上线&#xff0c;scitb包是一个为生成专业化统计表格而生的R包。目前只能绘制基线表一。 可以使用以下代码安装 install.packages("scitb")安装过旧版本的从新安装一次就可以升级了 scitb包1.5版本修…

Linux常用命令——cal命令

在线Linux命令查询工具 cal 显示当前日历或指定日期的日历 补充说明 cal命令用于显示当前日历&#xff0c;或者指定日期的日历。 语法 cal(选项)(参数)选项 -l&#xff1a;显示单月输出&#xff1b; -3&#xff1a;显示临近三个月的日历&#xff1b; -s&#xff1a;将星…

Thales hsm是什么意思,有什么作用?

Thales HSM是一种硬件安全模块(Hardware Security Module&#xff0c;HSM)&#xff0c;是Thales公司开发的一种安全设备&#xff0c;用于保护和管理密码和数字证书。HSM是一种物理设备&#xff0c;通常用于需要高度安全性的环境中&#xff0c;如政府机构、金融机构、大型企业等…

第四章:人工智能深度学习教程-激活函数(第一节-激活函数)

简单来说&#xff0c;人工神经元计算其输入的“加权和”并添加偏差&#xff0c;如下图所示的净输入。 从数学上来说&#xff0c; 现在净输入的值可以是从 -inf 到 inf 之间的任何值。神经元并不真正知道如何绑定到值&#xff0c;因此无法决定激发模式。因此激活函数是人工神经网…

vue项目electron打包

1.设置国内镜像 npm config edit 命令行输入后会弹出npm的配置文档&#xff0c;需要文档末尾加入 electron_mirrorhttps://npm.taobao.org/mirrors/electron/ electron-builder-binaries_mirrorhttps://npm.taobao.org/mirrors/electron-builder-binaries/ 2.全局安装electron …

内存条选购注意事项(电脑,笔记本)

电脑内存条的作用、选购技巧以及注意事项详解 - 郝光明的个人空间 - OSCHINA - 中文开源技术交流社区 现在的电脑直接和内存条联系 电脑上的所有输入和输出都只能依靠内存条 现在买双条而不是单条 买两个相同的内存条最好 笔记本先分清是低电压还是标准电压&#xff0c;DD…

经销商管理怎么做?

有人说&#xff0c;谁占据了渠道&#xff0c;谁就拥有了销售的大半个江山。在渠道为王的时代&#xff0c;每个企业都想快速打开市场&#xff0c;以渠道铺设自己的销路&#xff0c;捞取一桶桶金。因此&#xff0c;占领渠道&#xff0c;将渠道管理好是企业&#xff0c;尤其是快消…

安徽首届道医传承十八绝技发布会在合肥成功举办

近日&#xff0c;在安徽合肥举行了首届道医传承十八绝技发布会&#xff0c;本次会议由安徽渡罗门生物科技有限公司、北京道武易医文化传播有限公司、楼观台道医文化研究院联合举办。现场吸引了来自全国各地民族医学领域的专家学者参与讨论与交流。本次会议旨在促进道医的交流与…

如何存储队列位置信息

实际运行中的系统&#xff0c;难免会遇到重新消费某条消息、跳过一段时间内的消息等情况。这些异常情况的处理&#xff0c;都和Offset有关。本节主要分析Offset的存储位置&#xff0c;以及如何根据需要调整Offset的值。 首先来明确一下Offset的含义&#xff0c;RocketMQ中&…

进口猫罐头在排行榜中是否靠前?排行榜中靠前的猫罐头测评

养猫这6年&#xff0c;我对猫咪的日常饮食把关一直很严格。这些年我给我家猫们购买过很多不同品牌、不同口味的罐头&#xff0c;在猫罐头的挑选、分析上还是有一些经验的。今天&#xff0c;我将和大家一起探讨进口猫罐头在排行榜中是否靠前&#xff1f;同时&#xff0c;我将为大…

[量化投资-学习笔记008]Python+TDengine从零开始搭建量化分析平台-CCI和ATR

目录 1. 指标简介CCIATR 2. 程序编写题外话 1. 指标简介 将这两个指标放在一起&#xff0c;一方面是因为这两个指标都属于摆动指数&#xff0c;可以反应市场的活跃度。 另一方面是因为CCI和ATR与之前提到的EMA,MACD,布林带的三个指标的计算基础不同。之前的三个指标都是以收盘…

UltraEdit2024免费版文本编辑器

我们必须承认软件员使用的编辑器或代码编辑器是一款强大 IDE 的重要组成部分&#xff0c;它是任何 IDE 的核心基础。用户量向我们证明了UEStudio 基于著名的 UltraEdit 进行构建&#xff0c;同样&#xff0c;软件的主干非常成熟和稳定&#xff0c;并且已经被证实成为文本和软件…

【Unity ShaderGraph】| 物体靠近时局部溶解,根据坐标控制溶解的位置【文末送书】

前言 【Unity ShaderGraph】| 物体靠近时局部溶解&#xff0c;根据坐标控制溶解的位置一、效果展示二、根据坐标控制溶解的位置&#xff0c;物体靠近局部溶解三、应用实例&#x1f451;评论区抽奖送书 前言 本文将使用ShaderGraph制作一个根据坐标控制溶解的位置&#xff0c;物…

winform开发小技巧

如果我们不知道怎么在代码中new 一个控件&#xff0c;我们可以先在窗体中拉一个然后看Form1.Designer.cs 里面生成的代码就是我们要的 我们会在下面看到 还有泛型的使用&#xff0c;马上更新

ProPainter——实现视频消除特定对象、去水印、视频修复

ProPainter视频修复 1. 安装1.1 克隆项目1.2 创建虚拟环境和安装依赖库1.3 下载权重文件 2. 自带示例2.1 消除物体2.2 视频修复 3. 实际应用案例4.训练自己的数据集 &#x1f4dd;github&#xff1a;https://github.com/sczhou/ProPainter &#x1f4d6;paper&#xff1a;ICCV…