
3D
文章平均质量分 63
高精度计算机视觉
人工智能与视像技术,对技术有点执着
展开
-
CloudCompare源码分析_八叉树(Octree)算法基础CC中的八叉树结构
CC的octree算法主要体现在DgmOctree.h和DgmOctree.cpp中,他采用了一种分级的结构,最大支持21级,如下,然后,会事先计算得到一个分级表,CC这么做的原因是,把事先能计算好的数据先存储起来,用空间换时间的办法,来加速运算速度。所以这个value实际相当于这样一个表,(2) PRE_COMPUTED_POS_CODES这里,MAX_OCTREE_LENGTH == (1.........原创 2022-06-18 16:54:23 · 2065 阅读 · 0 评论 -
CloudCompare源码分析_显示渲染的程序架构
这一讲介绍一下CloudCompare的大致绘制流程或者说绘图框架的结构。根据前面一篇对CloudCompare读取PLY文件的介绍 ,很容易找出当cloudcompare读取到mesh文件(newGroup)后,会把这个文件通过addDB加载到根对象下面,这个根对象,就是ccDBRoot,其内部定义了一个ccHObject的指针,m_treeRoot,最终用来容纳子对像当然,这些都不是重点。重点是:CloudCompare是如何完成3D渲染的,相关的OpenGL函数,或者是Qt的Open原创 2022-06-17 21:27:26 · 2773 阅读 · 5 评论 -
Windows10 + OpenGL之hello triangle程序
在windows里用vs2019跑一个最基本的模型,原理讲解在这里,你好,三角形 - LearnOpenGL CNhttps://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/对应的源码在这里,Code Viewer. Source code: src/1.getting_started/2.1.hello_triangle/hello_triangle.cppwindows上的话,一般用glfw+glad来开发o原创 2022-06-12 18:38:49 · 569 阅读 · 0 评论 -
Windows 10 + OpenGL ES 3.0模拟器环境配置
有几个不错的关于原理讲解的资源,列在后面了。这里先在windows里用vs2019跑一个最基本的模型,原理讲解在这里,你好,三角形 - LearnOpenGL CN源码在这里,Code Viewer. Source code: src/1.getting_started/2.1.hello_triangle/hello_triangle.cpp不过windows下的话,貌似根本就没有OpenGL 3.0这个东西,然后搜索了一下,有个OpenGL ES Emulator的东西可以在windows上跑。Mali原创 2022-06-12 16:46:10 · 2530 阅读 · 0 评论 -
Qt开发高级进阶:初探qt + opengl
Qt 官方提供了好几个OpenGL的例程,我使用的qt5.15.0版,随便搜索了一下,发现有下面这几个例程,如图,随便点击了其中一个例程boxes,配置后rebuild了一下,项目地址在Qt的源码中,C:\Qt\qt5\Examples\Qt-5.15.0\widgets\graphicsview\boxes但发现总是报错,"This example requires Qt to be configured with -opengl desktop"于是打开boxes.pro看了一原创 2022-06-11 22:37:50 · 3830 阅读 · 1 评论 -
CloudCompare源码分析:读取ply文件
写这些博客的原因,是因为打算好好研究一下点云的各种库的源码,其中比较知名的是PCL(point cloud library)和CC(CloudCompare)。读源码的时候也没有什么头绪,所以看到哪里就写到哪里,算是随兴之作吧!回想起当年学网络编程,也是先一头扎进去,总结一番再说。至于总结得比较到位的结论,往往要等到对框架有一个大体的了解熟悉之后才行。从哪里开始呢?这里从最基本最简单的PLY文件读取开始吧。PLY是Polygon的意思,是以多边形的方式保存了空间点位信息。Mesh的格式非常多,如果想了解的话原创 2022-06-11 18:50:12 · 5062 阅读 · 2 评论 -
QtCreator+Vulkan初体验
我安装的是Qt5.15.0,安装自己带了一个vulkan的例子,地址在这里,C:\Qt\qt5\Examples\Qt-5.15.0\quick\scenegraph\scenegraph.pro用QtCreator打开后,build一下,发现找不到vulkan/vulkan.h。下载vulkan SDK下载地址在这里,LunarXchangehttps://vulkan.lunarg.com/sdk/home因为不清楚版本的兼容性,一时半会也没找到可用的信息,我就随便选了一个较近的版本原创 2022-05-07 11:14:00 · 3187 阅读 · 0 评论 -
VS2019编译(拷贝)Eigen库
今天编译meshlab,cmake-gui报错: Could not find a package configuration file provided by "Eigen3" with any of the following names: Eigen3Config.cmake eigen3-config.cmake于是找了一下Eigen3Config.cmake到底是个什么东西,先说结果,最后其内容如下,# This file exports the Eige原创 2022-04-10 14:08:32 · 2044 阅读 · 1 评论 -
3D进阶之CloudCompare:使用qt-creator编译
前面我们用VS2019编译好了CC;这里我们用qt-creator来试一下。关于qt的下载与安装可以参考这里,3D进阶之OSG: 编译osgQt_高精度计算机视觉的博客-优快云博客正好找到一篇类似的文章,CloudCompare导入到Qt Creator(Cmake)_光子乘羽的博客-优快云博客所以这里我就不重复造轮子了,讲一些不同的。在开始之前,你需要设置好你的Qt路径,比如我的qt5.15.0,然后我们开始一步步配置编译。第一步,qt-creator -->..原创 2022-04-09 14:27:06 · 1343 阅读 · 1 评论 -
3D进阶之CloudCompare:使用脚本添加git子项目依赖(.gitmodules)并用VS2019编译
逐个克隆:#!/bin/bashset -erm -rf .gitgit initgit config -f .gitmodules --get-regexp '^submodule\..*\.path$' > tempfilewhile read -u 3 path_key pathdo url_key=$(echo $path_key | sed 's/\.path/.url/') url=$(git config -f .gitmodules --ge..原创 2022-04-09 13:16:45 · 927 阅读 · 0 评论 -
3D进阶之OSG: Qt程序退出时在QScopedPointer中崩溃
今天调试一个osgQt的应用程序,在程序退出时发生崩溃。使用的是Qt5.15.0。查了一下,原因在这里,[QTBUG-93173] QGLContext::makeCurrent() crashes due to d->guiGlContext being null - Qt Bug Tracker最新版本应该已经修复了这个问题。原因:在程序运行过程中,主程序会不断轮询所有的widget的,并传递消息。但在退出时,glcontext其实已经在析构,此时碰到没有nullptr检查,再原创 2022-04-07 22:57:13 · 1061 阅读 · 1 评论 -
3D进阶之OSG:编译osgQt的旧版本
原来新版本osgQt的编译请移步到这里,3D进阶之OSG: 编译osgQt_高精度计算机视觉的博客-优快云博客osgQt是个简单的小项目,其实没有必要额外的编译,最核心的是个名为GraphicsWindowQt的类,只需要复制GraphicsWindowQt.h和GraphicsWindowQt.cpp到QT工程里面就可以使用了。同时osgQt给出了一个名为osgviewerQt的样例,也仅仅只是个cpp文件。结合两者,一个简单的示例就出来了。编译osgQt前面已经讲过了如何编译OSG,或者,直接下载原创 2022-04-05 20:07:55 · 982 阅读 · 0 评论 -
3D进阶之OSG:最基本的显示osgviewer
项目全部源码我还在整理,所以请暂时不要问源码的问题。原来的培训教程在这里,OSG新版教学视频(2021)— 内容篇_哔哩哔哩_bilibili但因为我使用VS2019, 不再使用VS2010这么老的版本,所以目前还在修改整理阶段。这是我们实现的第一个程序序,很简单,全部源码如下,#include <CommonLib/Common/Common.h>#include <osgGA/StateSetManipulator>#include <osgVie原创 2022-04-05 16:25:41 · 5345 阅读 · 0 评论 -
3D进阶之OSG:快捷键
OSG有不少快捷键,比如我们最常用的t ==> textures ==> statisticsf ==> full screenh ==> helpl ==> light在osgviwer窗口中使用这些快捷键盘,你会看到相应的效果。首先,我们可以使用--help打印出相应的帮助文档,osgviewer 或者 osgviewer --help,当然,实际上我们可能记不住那些信息,所以可以使用如下命令启动一个3D图像osgviewerc.原创 2022-04-04 20:40:57 · 1100 阅读 · 0 评论 -
3D进阶之OSG:如何让vs2019识别不带“.h”的osg头文件
OSG的头文件都没有使用.h这样的尾缀,用vs2019打开osg的头文件的时候,发现不能智能识别,这样的话,VS2019的便捷性就没有了,解决办法如下,菜单栏->工具->选项->文本编辑器->文件扩展名然后关闭VS2019,重启读取配置,然后就可以愉快地编译了,本文结束...原创 2022-04-04 16:58:54 · 849 阅读 · 0 评论 -
3D进阶之OSG: 编译osgQt(附:Qt的下载与安装)
osgQt是个简单的小项目,其实没有必要额外的编译,最核心的是个名为GraphicsWindowQt的类,只需要复制GraphicsWindowQt.h和GraphicsWindowQt.cpp到QT工程里面就可以使用了。同时osgQt给出了一个名为osgviewerQt的样例,也仅仅只是个cpp文件。结合两者,一个简单的示例就出来了。编译osgQt前面已经讲过了如何编译OSG,或者,直接下载OSG二进制可执行文件及库文件,得到这些文件后,我们就可以尝试着把Qt和OSG结合起来开发了,OSG官方原创 2022-04-04 12:14:35 · 3101 阅读 · 1 评论 -
3D进阶之OSG: VS2019编译OpenSceneGraph
首先,这里已经有人给出了个省事的解决方案,我给个链接,OSG3.6.5+VS2019:免编译,在VS2019中新建OSG项目运行OSG_乔木cc的博客-优快云博客_vs2019配置osg本博客资源链接_杨石兴的博客-优快云博客链接:https://pan.baidu.com/s/101IXFgvKQhQOEbfLa-ztZg提取码:osgb到这个链接里,找到vs2019的编译库和第三方依赖,就可以开始工作了。然后,我想说的是, 如果你想编译这些第三方依赖库,和OSG,其实也不难,.原创 2022-04-03 20:09:09 · 1326 阅读 · 0 评论 -
3D进阶之OSG:从VS2019编译osgEarth开始
3D库比较多,一般学习的有PCL的VTK,库比较大,集成了相当多不错的算法,对开发水平是个考验;OGRE由于其插件式架构,使得在机器人开发方面应用广泛;相对而言,OSG比较小众,可以用来构建模拟仿真的的场景图。当然,不论你学习哪个库,道理都是一样的,就是要去熟悉那些API,快速上手应用。言归正传,下面我们开始OSG的开发之旅。安装 osgEarth这玩意就是把osg的很多功能做了一次封装。官方地址是,Building osgEarth — osgEarth 3.1 documentati原创 2022-04-02 22:30:17 · 3233 阅读 · 0 评论 -
SLAM算法资料收集
一边看论文一边收集资料中。。。。想看论文的去这里找SLAM 论文阅读和分类整理_知行合一-优快云博客_slam 论文几个不错的博客VIO前端视觉惯性里程计的IMU预积分模型 - 知乎IMU预积分原理及代码实现 - 知乎VIO初始化相关Paper简单梳理 | 一索哥传奇...原创 2022-02-05 18:00:35 · 2061 阅读 · 0 评论 -
四元素(四元数quaternion)的理解
在游戏动画中,四元素因其在计算上的简易特性而被广泛使用,但对于诸多开发者而言,理解并不是那么容易。下面列几个漂亮的链接,作者做的非常好,一目了然。什么是万向节锁传统的欧拉坐标中,万向节锁的理解,万向节锁(Gimbal Lock)的理解 - 皮斯卡略夫 - 博客园其实这个很好理解,如果不使用物体自身材的坐标系,那么一切都不是问题。问题在于,当我们处于一个没法找到很好参考坐标的世界时(比如宇宙飞船在太空中可能啥也瞅不着),使用物体自身的坐标系就不可避免。最明了的四元素理解使用四元素能很好原创 2022-02-05 13:12:33 · 2892 阅读 · 0 评论 -
ROS报错: Unable to communicate with master
原因是没有启动roscore,打开一个终端,输入roscore启动即可。原创 2022-02-02 22:45:41 · 4355 阅读 · 0 评论 -
VINS-MONO:integer_sequence_algorithm.h:64:21: error: ‘integer_sequence’ is not a member of ‘std’
在catkin编译vins-mono时碰到了下面的问题,In file included from /usr/local/include/ceres/internal/parameter_dims.h:37, from /usr/local/include/ceres/internal/autodiff.h:151, from /usr/local/include/ceres/autodiff_cost_function.h:130,原创 2022-02-02 14:46:01 · 1689 阅读 · 0 评论 -
SLAM算法VINS-MONO安装运行介绍
说明:把资料放在这里,主要是因为github经常上不去,速度慢。如果网络申通的话大家还是去官网看资料比较方便,这个贴子本身没什么价值。所以这个贴子会持续更新。我用的系统是Ubuntu18.04。通常是ROS/ROS2都会装,而且搞算法的涉及面太广,免不了过一段时间就要重装系统。VINS MONO 运行介绍VINS mono的下载地址https://github.com/HKUST-Aerial-Robotics/VINS-Mono安装参考网址ROS Documentation原创 2021-12-13 12:20:14 · 2589 阅读 · 0 评论 -
ROS报错:-- Could NOT find PY_em (missing: PY_EM)
Ubuntu20.04, ROS Noetic,根据ROS tutorial,ROS/Tutorials/InstallingandConfiguringROSEnvironment - ROS Wiki$ mkdir -p ~/catkin_ws/src$ cd ~/catkin_ws/$ catkin_make报错如下,matthew@UBUT:~/catkin_ws$ catkin_make...-- Using PYTHON_EXECUTABLE: /home/matth原创 2022-02-01 20:17:38 · 8116 阅读 · 11 评论 -
ROS安装时:找不到有效的OpenPGP数据
安装ROS-noetic,时,当输入命令时:curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -报错:gdp: 找不到有效的 openpgp 数据原因:是http://raw.githubusercontent.com是墙外地址,无法访问解决方法:弄个梯子,或者从另一个网址获取密钥,如下wget http://packages.ros.原创 2022-02-01 17:58:36 · 5499 阅读 · 6 评论 -
Tools_vcpkg包管理工具在VS2019项目开发中的使用
如何通过VS2019集成vcpkg已经安装的项目到开发项目中原创 2022-01-29 10:26:19 · 2148 阅读 · 0 评论 -
PCD(点云数据)文件格式
本节描述PCD(点云数据)文件格式。为什么用一种新的文件格式?PCD文件格式并非白费力气地做重复工作,现有的文件结构因本身组成的原因不支持由PCL库引进n维点类型机制处理过程中的某些扩展,而PCD文件格式能够很好地补足这一点。PCD不是第一个支持3D点云数据的文件类型,尤其是计算机图形学和计算几何学领域,已经创建了很多格式来描述任意多边形和激光扫描仪获取的点云。包括下面几种格式:lPLY是一种多边形文件格式,由Stanford大学的Turk等人设计开发;lSTL是3D Syste...转载 2022-01-27 21:15:50 · 1642 阅读 · 0 评论 -
pcl_viewer的使用与viewer窗口编程
可视化:一目了然如题所示,可视化的重要性不必多说。在点云数据预处理中,要想知道点云的形状需要可视化; 要想了解精简/去噪/简化/压缩 的结果需要可视化; 配准中,对应点对的显示/对应点对的去除结果/配准变化的过程 需要可视化 …转载 2022-01-26 21:50:09 · 2535 阅读 · 1 评论