point-cloud-annotation-tool工具windows复现,史诗巨制(windows 11)
point-cloud-annotation-tool
- 前期准备
- 1.安装Qt5
- 2.安装Cmake
- 3.安装VS 2019
- 4.编译构建 VTK 8.1
- 5.安装 PCL 1.8
- 6.编译Boost
- 软件环境适配准备
- 1 Boost
- 2 VTK
- 开始编译
- 开始生成
前期准备
point-cloud-annotation-tool是一款三维标注软件,本次介绍的是再windows11环境下安装
项目地址:https://github.com/springzfx/point-cloud-annotation-tool
按照先后顺序安装以下软件或者库:
1.安装Qt5
point-cloud-annotation-tool 要求版本为 Qt5
安装参考链接:https://blog.csdn.net/LQ_001/article/details/147560971?spm=1001.2014.3001.5502
2.安装Cmake
point-cloud-annotation-tool 要求Cmake版本低于3.5,所以使用 cmake-3.31.7-windows-x86_64.zip
。
cmake下载地址: https://cmake.org/download/
cmake安装步骤:(1)下载zip版本“cmake-3.xx-win64-x64.zip”(2)解压到指定目录并添加bin所在目录到环境变量。(3) 在终端输入“cmake --help”或 “cmake --version”查看是否配置成功。
3.安装VS 2019
point-cloud-annotation-tool 是一个老项目,版本低一点兼容性好(2022可能也行,建议2019)。
现在vs 2019的下载器比较难找,这里放一个链接:
链接一,官网2019:https://aka.ms/vs/16/release/vs_buildtools.exe
链接二,网友链接:https://blog.csdn.net/Dou_Fu_Ru/article/details/144938409
安装项目,注意下图框选的一定要安装,才能支撑起 point-cloud-annotation-tool 的安装:

4.编译构建 VTK 8.1
point-cloud-annotation-tool要求版本是 VTK 8.1
编译构建,参考链接:https://blog.csdn.net/LQ_001/article/details/147573594?spm=1001.2014.3001.5502
5.安装 PCL 1.8
point-cloud-annotation-tool 要求PCL版本是 1.8
参考链接,这里将前三步执行结束即可:https://blog.csdn.net/qq_64095888/article/details/142991283
6.编译Boost
经过尝试,1.64太低,1.84太高,使用1.72通过后期构建。
参考链接:https://blog.csdn.net/LQ_001/article/details/147591675?spm=1001.2014.3001.5502
软件环境适配准备
1 Boost
1.将前面 Boost 编译的结果,完全删除替换掉PCL下面的Boost。比如我的PCL路径位于 :C:\appdata\PCL 1.8.1
。
现在:
将Boost 编译后的boost
,放到C:\appdata\PCL 1.8.1\3rdParty\Boost\include\boost_1_72_0\boost
文件名版本号也修改掉
将Boost 编译后的stage
里的 lib
文件,放到C:\appdata\PCL 1.8.1\3rdParty\Boost\lib

2 VTK
2.将编译后的VTK发布文件,,完全替代掉PCL下面的VTK。比如我的PCL路径位于 :C:\appdata\PCL 1.8.1\3rdParty\VTK
。
现在:
将编译好的C:\code\VTK-8.1.0\prefix
下面所有的VTK文件,放到C:\appdata\PCL 1.8.1\3rdParty\VTKt
中,完全删除替换掉。

开始编译
1.下载项目 point-cloud-annotation-tool:https://github.com/springzfx/point-cloud-annotation-tool。下载后就在项目中新建build
文件夹备用。
2.打开CMAKE,右键用管理员运行打开 "cmake\bin\cmake-gui.exe"
,依次配置目录,点击 "Configure"
。

3.在弹出的界面选择编译器2019
,x64
,Use default native compilers
,Finish
。

4.点击 "Configure"
,耐心等待配置结束,可以看待有很多报红,等待我们配置。
依次以下方式配置目录,再次点击 "Configure"
。
在 Ugrouped Etries
中,Boost DIR,选择C:/appdata/PCL 1.8.1/3rdParty/Boost/lib/cmake/Boost-1.72.0
在 Ugrouped Etries
中,VTK DIR,选择C:/appdata/PCL 1.8.1/3rdParty/VTK/lib/cmake/vtk-8.1

5.结果如下,配置项目已经没有报红了,只要红色条目全部变白,就可以点击Generate
。

点击Generate
之后如下:

开始生成
1.接下是将 point-cloud-annotation-tool 生成可用的文件。在前面的point-cloud-annotation-tool 的 build目录下,使用VS2019打开C:\code\point-cloud-annotation-tool\build\point_cloud_annotation_tool.sln
2.选择Debug
, x64
平台。

右键point-cloud-annotation-tool
,选择属性,选择VC++
目录,选择包含目录
。
添加Boost路径:C:\appdata\PCL 1.8.1\3rdParty\Boost\include\boost_1_72_0
添加VTK路径:C:\appdata\PCL 1.8.1\3rdParty\VTK\include\vtk-8.1
重复以上步骤,给
ALL_BUILD
point-cloud-annotation-tool
QVTKWidgetTest
visiualizer
vtkAnnotationBoxSourceTest
vtkBoxWidgetRestrictedTest
每一个项目都添加这两个路径。

3.右键ALL_BUILD
,生成。这个过程会持续几分钟,可以看到成功Debug。

3.再选择Release
, x64
平台。

右键point-cloud-annotation-tool
,选择属性,选择VC++
目录,选择包含目录
。
添加Boost路径:C:\appdata\PCL 1.8.1\3rdParty\Boost\include\boost_1_72_0
添加VTK路径:C:\appdata\PCL 1.8.1\3rdParty\VTK\include\vtk-8.1
重复以上步骤,给
ALL_BUILD
point-cloud-annotation-tool
QVTKWidgetTest
visiualizer
vtkAnnotationBoxSourceTest
vtkBoxWidgetRestrictedTest
每一个项目都添加这两个路径。

4.再次找到 ALL_BUILD
项目,右键,生成。这个过程会持续几分钟,可以看到成功Release。
5.找到路径,C:\code\point-cloud-annotation-tool\build\Release\point_cloud_annotation_tool.exe
,这就是最终输出的工具。
现在还缺几个Qt5文件:
(1)将Qt5C:\appdata\Qt\5.14.2\msvc2017_64\bin
下面的Qt5Core.dll,Qt5Gui.dll,Qt5Widgets.dll
拷贝一份到point_cloud_annotation_tool.exe同级目录中。
(2)将Qt5C:\appdata\Qt\5.14.2\msvc2017_64\plugins
下面的platforms
拷贝一份到point_cloud_annotation_tool.exe同级目录中。

6.此时双击point_cloud_annotation_tool.exe
,即可运行!!!
相关文章:
point-cloud-annotation-tool工具windows复现,史诗巨制(windows 11)
point-cloud-annotation-tool 前期准备1.安装Qt52.安装Cmake3.安装VS 20194.编译构建 VTK 8.15.安装 PCL 1.86.编译Boost 软件环境适配准备1 Boost2 VTK 开始编译开始生成 前期准备 point-cloud-annotation-tool是一款三维标注软件,本次介绍的是再windows11环境下安…...
欧拉计划 Project Euler60(素数对集合)题解
欧拉计划 Project Euler 60 题解 题干思路code 题干 思路 先欧拉筛预处理出素数,然后dfs,注意剪枝,不然太容易炸了 code //13 5197 5701 6733 8389 //26033 #include <bits/stdc.h>using namespace std;using ll long long;bool i…...
DeepSeek破界而来:重构大规模深度检索的算力与边界
深度检索技术革命:DeepSeek万亿参数框架如何突破实时召回率瓶颈 引言:当千亿参数遇见实时检索 在人工智能技术飞速发展的今天,超大规模语言模型已成为推动产业智能化的核心引擎。然而,随着模型参数量突破万亿级门槛,…...
自定义指令input中前面不能输入空格
vue3加el-input 封装自定义指令 utils/trim.ts import type { Directive, DirectiveBinding } from vue;const trim: Directive {mounted(el, binding: DirectiveBinding) {// 获取 el-input 的 DOM 节点const inputEl el.querySelector(input);if (!inputEl) {console.er…...
esp32将partitions.csv文件启用到工程项目中的配置
在ESP32项目里,partitions.csv 文件用于定义闪存的分区表,它规定了不同类型数据(如代码、文件系统、OTA 分区等)在闪存中的存储位置和大小。下面为你详细介绍如何将 partitions.csv 文件集成到工程项目中以及相应的配置步骤。 1.…...
Windows系统下,导入运行 RuoYi-Vue3 项目
基于SpringBootVue3前后端分离的Java快速开发框架 一、后端 1.git下载代码 RuoYi-Vue:RuoYi-Vue: 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统 git clone https://gitee.com/y_project/R…...
Spark 配置 YARN 模式
在大数据处理领域,Spark 是一个强大的分布式计算框架,而 YARN(Yet Another Resource Negotiator)则是 Hadoop 生态系统中出色的资源管理器。将 Spark 配置为 YARN 模式,可以充分利用 YARN 高效的资源管理和调度能力&am…...
【Linux学习笔记】进程替换和自定义shell
【Linux学习笔记】进程替换和自定义shell 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 文章目录 【Linux学习笔记】进程替换和自定义shell前言一.进程程序替换1.1 替换原理1.2 替换函数1.2.1函数解释1.2.2命名理解 二.自主…...
HarmonyOS运动开发:如何监听用户运动步数数据
前言 在开发运动类应用时,准确地监听和记录用户的运动步数是一项关键功能。HarmonyOS 提供了强大的传感器框架,使得开发者能够轻松地获取设备的运动数据。本文将深入探讨如何在 HarmonyOS 应用中实现步数监听功能,同时分享一些开发过程中的经验和技巧,帮助你更好地理解和实…...
Vuex状态管理及其持久化使用指南
1. 安装 Vuex Vue 2 或 Vue 3 项目: npm install vuex4 # Vuex 4 兼容 Vue 2 和 Vue 3 2. 创建 Store 新建 store/index.js: import { createStore } from vuex; import createPersistedState from vuex-persistedstate; // 持久化插件// 定义子模…...
k8s学习笔记
1查看默认命名空间pod kubectl get nodes 查看所有名空间的pod kubectl get pods -A 查看所有节点node kubectl get nodes 2根据配置文件,给集群创建资源 kubectl apply -f xxxx.yaml 3查看集群部署了哪些应用? kubectl get pods -A 4生成、删除、获取所…...
HarmonyOS ArkUI安全控件开发指南:粘贴、保存与位置控件的实现与隐私保护实践
目录 安全控件1. 粘贴控件1.1 约束与限制1.2 开发步骤 2. 保存控件2.1 约束与限制2.2 开发步骤 3. 位置控件3.1 约束与限制3.2 开发步骤 安全控件 安全控件是系统提供的一组系统实现的ArkUI组件,其中保存控件在用户首次使用时,会弹出通知弹窗࿰…...
前端在平常的开发中高度还原ui图的思考规范
问题原因 我们明明按照ui测量 为什么还会出现这么多样式偏差 根据我多次的验收反馈总结如下 使用组件库 不可能所以样式覆盖复制粘贴以前的代码 样式产生偏差有些样式是继承所得 难免疏漏图片等背景问题 或者切图问题padding等结尾问题 解决方案 组件库穿透 主要样式复制粘…...
Python 数据智能实战 (2):LLM 工具箱搭建 - API/库实操与高效 Prompt 设计入门
写在前面 —— 工欲善其事,必先利其器:连接你的 Python 与 LLM 大脑,掌握“对话”的艺术 本篇博客,我们将聚焦于“工欲善其事,必先利其器”这一核心环节,带你完成以下关键任务: 选择你的 LLM “接入点”: 了解访问 LLM 的主要方式 (云 API vs. 本地模型),并为入门选…...
即时设计笔记
1. 编辑形状 1.1 连接两个锚点 如图,形状编辑模式下,想将下面图形变成闭合形状 使用【钢笔工具】选中其中一锚点,会自动伸出一条线,然后再点击另一个锚点即可 【注意】,形状闭合后,会发现无法填充颜色&am…...
“云大物智移”背景下,五年制高职计算机类高水平专业群建设方案
在信息技术革命的浪潮中,云计算、大数据、物联网、人工智能和移动互联网(简称“云大物智移”)已成为推动全球经济和社会数字化转型的关键力量。这些技术不仅重塑了产业格局,也给职业教育带来了前所未有的挑战与机遇。随着“云大物…...
docker desktop汉化
关闭Docker Desktop 在Docker安装目录找到app.asar文件并将其备份,防止出现意外。 Windows下默认为C:\Program Files\Docker\Docker\frontend\resourcesMacos下默认为/Applications/Docker.app/Contents/MacOS/Docker Desktop.app/Contents/ResourcesUbuntu/Debian…...
KUKA机器人快速启动设置
KUKA机器人在首次开机启动时,有时在示教器上需要进行投入运行等相关的设置。如以下相关的信息需要处理: 1、机器人系统开机后,选择T1运行模式;2、显示提示信息:“RDC 存储器和控制系统不一致什么被更换了”时…...
【Java学习】Java的CGLIB动态代理:通俗解释与使用指南
应友友的要求,本章是对于Java的CGLIB动态代理进行一个通俗的解释,希望能够帮助到奋斗的你,一起加油!!! 🌟 通俗理解CGLIB动态代理 想象你有一个玩具机器人(原始类)&…...
Python3 基础语法
编码 默认情况下,Python3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码: # -*- coding: cp-1252 -*- 上述定义允许在源文件中使用 Windows-1252 字符集中的字符编码,对应适合…...
基于Lucene的多场景检索系统开发指南
基于Lucene的多场景检索系统开发指南 官网 https://lucene.apache.org/ 一、项目构建配置 (pom.xml) <dependencies><!-- Lucene核心库 --><dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-core</artifactId&g…...
SDC命令详解:使用get_nets命令进行查询
相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 get_nets命令用于创建一个线网对象集合,关于设计对象和集合的更详细介绍,可以参考下面的博客。需要注意的是,在有些工具中还存…...
MATLAB长方体磁体3D磁力线生成
代码说明: 磁体参数设置:对磁体的尺寸、磁化强度以及真空磁导率进行定义。计算网格生成:构建一个 3D 网格,同时排除磁体内部的点。磁场计算:采用等效面磁荷法来计算每个网格点的磁场。可视化: 绘制磁体的框…...
东土科技NewPre系列智能控制器的创新之旅
物流行业,作为支撑现代供应链的核心环节,正在面临效率瓶颈、人工成本上升、设备协同难等多重挑战。如何实现从自动化向智能化的转型,成为行业亟须解决的关键问题。东土科技基于NewPre3102智能控制器打造的工业AI智能机器人控制系统࿰…...
2025年燃气从业人员考试题库及答案
一、单选题 83.城镇燃气输配管道严密性试验稳压的持续时间应为24h,每小时记录不应少于1次,当修正压力降小于_____Pa为合格。() A.100 B.133 C.150 D.200 答案:B 84.室外钢管敷设描述错误的是_____。(…...
小结: 接口类型和路由优先级
网络接口类型 1. Bridge-if(桥接接口) 作用:用于桥接网络,将多个接口或VLAN连接为一个广播域,实现二层数据转发。 常用指令: interface bridge-if <number> bridge <bridge-id> # 将接口加入…...
【XR空间传送】深入理解Unity中 XR Interaction Toolkit 的 MatchOrientation 用法与使用场景(空间传送、视角切换)
一、前言 在 Unity 进行 VR/AR 开发,尤其是在展示、环境体验、导览交互等场景中,“传送(Teleport)”是一项非常核心的操作。它不仅决定了玩家的位置,还直接影响玩家的站姿、视角与空间感知。 在 Unity 官方提供的 XR…...
PPT/WORD如何实现Shift键加鼠标滚轮实现左右滑动
方法:使用【AutoHotKey】软件 1. 什么是AutoHotKey? AutoHotKey (AHK),是一款类似于按键精灵的软件,用于自动化控制键盘和鼠标,提高工作效率。 官网下载:https://www.autohotkey.com/ 2. 需求背景 在编…...
C++函数模板基础
1 函数模板 1.1 基础介绍 函数模板是一种特殊的函数定义,它允许你创建通用的函数,这些函数可以处理多种不同的数据类型,而不需要为每种数据类型都编写一个单独的函数。 在 C++ 里,函数模板的格式包含模板声明与函数定义两部分,其基本格式如下: template <typename…...
Java实现使用EasyExcel按模板导出文件
需求:导出excel文件要求头部标题内容过于复杂,在代码层面不好实现,直接提供模板,只需要将数据写入即可。 一、代码实现示例 实现数据写入模板代码如下: public void export(HttpServletResponse response) throws E…...
【AI】OrinNX上安装RIVA-2.19.0,实现文本转语音
1、注册NGC账户 1)登录官网注册, https://ngc.nvidia.com/signin 2)生成key 3)拷贝生成的key到文本中,下面会使用 2、安装NGC工具 目前最新版本为3.64.2 1)下载 wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/ngc-apps/ngc_cli/vers…...
Ansible安装配置
一、前提 服务器操作系统均为centos7.9 主机ipmaster(Ansible管理端)172.25.192.2node1172.25.192.10node2172.25.192.3 更新/etc/hosts文件 二、安装 master节点: 1. 安装epel源 yum install -y epel-release 2. 安装Ansible yum install -y ansible A…...
认识Linux基本操作、命令
目录 一、了解一下用户目录、linux根目录 二、常见的linux命令 (1)目录切换 cd【与windows通用】 (2) 查看文件列 ls (3)打开文件权限-chmod ux *.sh (4)查看当前所在路径 pwd…...
Android学习总结之Bitmap篇
一、质量压缩(面试高频:原理与适用场景) 1. 核心原理(面试官必问) 质量压缩针对有损压缩格式(如 JPEG),通过丢弃图像中人类视觉不敏感的高频信息(如色彩过渡细节&#…...
MySQL--数据引擎详解
存储引擎 MySQL体系结构 连接层: 主要接收客户端的连接,然后完成一些链接的处理,以及认证授权的相关操作和安全方案,还要去检查是否超过最大连接数等等,比如在连接MySQL服务器时需要输入用户名,密码&#…...
高瓴资本张磊的顶级价值投资之道
高瓴资本张磊的顶级价值投资之道 一、核心理念:长期主义与动态价值创造 张磊的价值投资体系以“长期主义”为基石,结合中国产业升级特点,形成了独特的投资哲学: 时间维度重构 • 主张跨越经济周期,关注企业10年以上的价…...
JAVA使用Apache POI导出Word,支持向表格动态添加多行数据
JAVA使用Apache POI动态导出Word文档_java导出word文档-CSDN博客...
外部存储器接口:EMIF总线
作为嵌入式系统中的关键接口之一,EMIF(External Memory Interface,外部存储器接口) 是处理器与外部存储器或外设进行高速数据交换的核心总线。以下从工作原理、信号定义、配置方式到设计要点进行系统化解析: 一、EMIF的…...
四.割草机技术总结--4.基站发送给流动站的差分数据传输标准RTCM
四.割草机技术总结–4.基站发送给流动站的差分数据传输标准RTCM 文章目录 四.割草机技术总结--4.基站发送给流动站的差分数据传输标准RTCM4.0 RTCM差分标准4.1 **什么是RTCM?**4.1.1**>版本1**4.1.2**>版本2**4.1.3**>版本3**4.2**为什么RTK的固件升级很重要?**4.3参…...
openssl_error_string() 不要依赖错误信息作为逻辑判断
不应该将 OpenSSL 错误信息直接用于程序的逻辑控制,而是应该将其作为调试和记录的辅助手段。这是因为 OpenSSL 错误信息的格式和内容可能会因 OpenSSL 版本、操作系统环境等因素而发生变化,直接依赖这些信息可能会导致代码的不稳定和难以维护。 为什么不…...
AbortController 取消请求
AbortController是JavaScript中的一个全局类,主要用于中止各种异步操作,包括网络请求、事件监听器、可写流和数据库事务等。通过提供一个AbortSignal对象,AbortController允许开发者在需要时自由地终止这些操作,避免不必要的开…...
【论文阅读】PEEKABOO: Interactive Video Generation via Masked-Diffusion
PEEKABOO: Interactive Video Generation via Masked-Diffusion 原文摘要 研究背景与问题 现状:现代视频生成模型(如 Sora)已能生成高质量视频,但缺乏用户交互控制能力。 问题:交互控制是未来应用和创意表达的关键功能…...
Java 多线程基础:Thread 类详解
在 Java 中,多线程编程离不开 Thread 类。本文将介绍 Thread 的常用属性和方法,并结合实际使用场景进行讲解。 一、线程的创建与基本操作 Java 提供了两种主要方式来创建线程: 继承 Thread 类 class MyThread extends Thread {public void r…...
论文阅读:2024 arxiv FlipAttack: Jailbreak LLMs via Flipping
总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 https://www.doubao.com/chat/4001481281518594 FlipAttack: Jailbreak LLMs via Flipping https://arxiv.org/pdf/2410.02832 速览 这篇论文主要介绍了一种针对大语言模…...
《数据结构之美--二叉树oj题练习》
引言: 上次我们学习了二叉树这一数据结构,这次我们就针对二叉树来做一些oj题来巩固一下 1. 单值二叉树 题目: 思路分析: 代码实现: 题目传送门: 力扣–965.单值二叉树 2. 相同的树 题目: 思路分析&am…...
大模型——使用coze搭建基于DeepSeek大模型的智能体实现智能客服问答
大模型——使用coze搭建基于DeepSeek大模型的智能体实现智能客服问答 本章实验完全依托于coze在线平台,不需要本地部署任何应用。 实验介绍 1.coze介绍 扣子(coze)是新一代 AI 应用开发平台。无论你是否有编程基础,都可以在扣子上快速搭建基于大模型的各类 AI 应用,并…...
React Navigation 使用指南
React Navigation 使用指南 React Navigation 介绍 React Navigation 是 React Native 中推荐的路由管理方案。 1. 开箱即用,快速上手(Easy to Use) 提供 内置导航器(Built-in Navigators),如栈导航&…...
双系统,bios默认设置启动ubuntu+ubuntu改启动grub设置
设置默认启动ubuntu 装windows后就默认启动windows了 按f6上移动 -------------底下不用看 设了没用 sudo update-grub...
Vue 中的过渡效果与响应式数据:transition、transitiongroup、reactive 和 ref 详解
在 Vue 开发过程中,为应用添加过渡效果和处理响应式数据是提升用户体验和实现动态交互的关键。 一、transition:元素的单元素过渡效果 transition是 Vue 提供的内置组件,专门用于为单个元素或组件添加过渡动画。它会在元素插入、更新或移除…...
Gitea windows服务注册,服务启动、停止、重启脚本
修改配置文件 查看COMPUTERNAME echo %COMPUTERNAME%进入配置文件D:\gitea\custom\conf\app.ini,将 Gitea 设置为以本地系统用户运行 如果结果是 USER-PC,那么 RUN_USER USER-PC$ RUN_USER COMPUTERNAME$SQLite3 PATH配置,更改为包含完整…...