码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 简析CloudCompare文件夹之间的关系


    公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。

    CC文件间的依赖关系

    ccViewer文件夹是CC单独实现的一个用于可视化小模块,依赖的库有四个,以及包含了common文件中实现的基础类。

     其中依赖的链接库有四个分别为:

    CC_FBO_LIB,CC_CORE_LIB,QCC_DB_LIB ,QCC_IO_LIB,QCC_GL_LIB。

    CC_FBO_LIB:该库为lib文件夹下CCFbo文件编译的结果,主要有四个头文件,分别为

    ccShader.h,ccGlFilter.h,ccFrameBufferObject.h,ccBilateralFilter.h

    • ccShader类是继承了QOpenGLShaderProgram库用于实现点云着色功能。

    • ccGlFilter类 默认的GL滤波器接口,GL滤波器是应用于纹理(通常是渲染场景)的着色器的组合。

    • ccFrameBufferObject类,FBO类封装与QOpenGLFramebufferObject类相比,该类提供了以下可能性:获取附加的深度纹理ID以及附加自定义颜色纹理。

    • ccBilateralFilter继承ccGlFilter实现对shader的双边滤波。双边滤波器是图像的非线性、边缘保持和降噪平滑滤波器,它实现每个像素的强度替换为附近像素的强度值的加权平均值,该权重可以基于高斯分布,至关重要的是,权重不仅取决于像素的欧几里得距离,还取决于辐射差异(例如,距离差异,如颜色强度、深度距离等),这将有益于保留明显的边缘位置。

        CC_CORE_LIB:  这个为CC自带的核心的算法库,这部分内容在上一篇文章中有详细介绍,在编译的时候会被编译成CC_CORE_LIB库。

        QCC_DB_LIB 实现基础的点,线,面,法线,圆,椭圆,立体框,模拟相机视角,mesh等等三维点云常用的属性。

        QCC_IO_LIB 实现对各种点云数据操作的IO类,比如*.txt *.asc *.neu *.xyz *.pts *.csv等Ascii格式的点云打开,保存,读,写,以及ply,shp以及图像等格式的数据的操作。当然这些数据的处理也是继承了Qt中IO的类。

        QCC_GL_LIB  实现对OpenGL的可视化的库,比如实现创建GL的窗口,以及可视化的参数配置窗口

    ccViewer文件夹依赖的common没有编译成库的形式,其主要实现了一些弹窗,界面按钮的功能,pick点云,插件管理等功能。也就是各种鼠标点击,拖拽的信号处理的实现。

    qCC文件是CloudCompare主要实现文件夹,包含了对主界面的中各个功能的实现。相比ccViewer多了一个qcustomplot库的依赖,QCustomPlot是一个用于绘图和数据可视化的Qt C++构件, 它没有进一步的依赖关系,并有很好的文档记录, 该绘图库专注于制作美观,制作高品质的2D图表,以及为实时可视化应用程序提供高性能。QCustomPlot可以导出为各种格式,如矢量化的PDF文件和光栅化图像,如PNG,JPG和BMP。QCustomPlot是在应用程序内部显示实时数据以及为其他媒体生成高质量图的解决方案。

    b6df0c9ad908c633023066e27c61f736.png

    CC文件夹之间的依赖关系

    CC类继承QT为什么加上Q_OBJECT?

    Q_OBJECT是Qt中的一个宏定义,这是因为Qt的语法是在c++的基础上拓展的,所以在Qt程序的编译过程中,直接用gcc这些标准编译器进行编译是不可行的,因为gcc不能识别这些拓展性的语法,比如信号和槽(Signal and Slot),所以Qt引入了moc这一编译器。moc(Meta-Object Compiler),即元对象编译器,Qt 程序在交由标准编译器编译之前,会使用 moc 分析 C++ 源文件,假设它发现某个头文件中包括了 Q_OBJECT这个宏,需要注意的是, moc 只处理头文件中标记了Q_OBJECT的类声明,不会处理 cpp 文件中的类似声明,则会生成另外一个 C++ 源文件,这个源文件里包括了 Q_OBJECT 宏的实现代码,并且文件名称将会是原文件名称前面加上 moc_ 。这个新的文件会和原本的c++源文件一起进入编译系统,最终被链接到二进制代码中完成编译工作。所以我们可以注意到CloudCompare中大多头文件中定义类的时候都加上了Q_OBJECT。

    05c18c49b2e704e08f7f4376a25e0213.png

    CC模块划分

    资源

    自动驾驶及定位相关分享

    【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

    自动驾驶中基于光流的运动物体检测

    基于语义分割的相机外参标定

    综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍

    高速场景下自动驾驶车辆定位方法综述

    Patchwork++:基于点云的快速、稳健的地面分割方法

    PaGO-LOAM:基于地面优化的激光雷达里程计

    多模态路沿检测与滤波方法

    多个激光雷达同时校准、定位和建图的框架

    动态的城市环境中杆状物的提取建图与长期定位

    非重复型扫描激光雷达的运动畸变矫正

    快速紧耦合的稀疏直接雷达-惯性-视觉里程计

    基于相机和低分辨率激光雷达的三维车辆检测

    用于三维点云语义分割的标注工具和城市数据集

    ROS2入门之基本介绍

    固态激光雷达和相机系统的自动标定

    激光雷达+GPS+IMU+轮速计的传感器融合定位方案

    基于稀疏语义视觉特征的道路场景的建图与定位

    自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)

    用于三维点云语义分割的标注工具和城市数据集

    更多文章可查看:点云学习历史文章大汇总

    SLAM及AR相关分享

    TOF相机原理介绍

    TOF飞行时间深度相机介绍

    结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案

    开源又优化的F-LOAM方案:基于优化的SC-F-LOAM

    【开源方案共享】ORB-SLAM3开源啦!

    【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

    【点云论文速读】StructSLAM:结构化线特征SLAM

    SLAM和AR综述

    常用的3D深度相机

    AR设备单目视觉惯导SLAM算法综述与评价

    SLAM综述(4)激光与视觉融合SLAM

    Kimera实时重建的语义SLAM系统

    SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

    易扩展的SLAM框架-OpenVSLAM

    高翔:非结构化道路激光SLAM中的挑战

    基于鱼眼相机的SLAM方法介绍

    如果你对本文感兴趣,请后台发送“知识星球”获取二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

    以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

    扫描二维码

                       关注我们

    让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

    分享及合作方式:微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

    点一下“在看”你会更好看耶

    853f2b3bacc02e8d3eafd9513d38f91f.gif

  • 相关阅读:
    建模杂谈系列177 APIFunc继续实践-比对研究
    线程与进程的关联
    JSD-2204-Lombok插件-MyBatis配置.xml文件-Day03
    layui弹出层点回车键无限弹出解决
    Android学习笔记 1.8 使用Android 9 来签名APK
    【Java 基础篇】Java多线程编程详解:线程创建、同步、线程池与性能优化
    十六、W5100S/W5500+RP2040树莓派Pico<HTTP Client上传数据到OneNET>
    《数据资产管理实践白皮书》5.0版--数据资产管理保障措施
    【21天python打卡】第19天 python经典案例(5)
    Android系统 修改源码实现root
  • 原文地址:https://blog.csdn.net/u013019296/article/details/127681410
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号