当前位置:网站首页>Cloudcompare learning (1) - cloudcompare compilation and common plug-in implementation
Cloudcompare learning (1) - cloudcompare compilation and common plug-in implementation
2022-07-03 08:21:00 【CHPCWWHSU】
Recently, due to the need of work , Leaning towards the learning of point cloud algorithm library . Given some disordered three-dimensional points , You can build a triangulation of point clouds , Then texture , If the algorithm is robust enough , It's also very powerful , After all, we get a model from some points . Because I just started , Start with open source libraries and open source software , First, learn the action of the software , Then analyze the source code .CloudCompare It is a very good open source point cloud display and processing software , In particular, there is a better framework , Make it highly scalable , This is also worth learning . It USES the GPL to grant authorization , The application software developed under this framework must also be open source , This may not be friendly to commercial companies , But it's still good for code friends .
The following is mainly from two aspects CloudCompare The understanding of the . The first is to compile it , Then manually implement a plug-in function of point cloud thinning , From these two aspects, we have entered CompareCloud The palace of learning .
1、CloudCompare V2.12 Compilation of
1.1 Source download
Source code can be obtained from CloudCompare Official website , or github Upload and download , Address the following :
https://github.com/cloudcompare/cloudcompare
2.2 Source code compilation
use CMake Compile ,CMake You can download it yourself , As shown in the figure below CMake After the results of the :
Configure->Generate->OpenProject, Then generate install It will be generated successfully , Get an executable CloudCompare Software . Of course, you get it like this CloudCompare It is relatively simplified , You can check the above figure PLUGIN Options in , To add corresponding interfaces to the software , At the same time, you need to configure the required third-party libraries , Check... As shown in the figure below PLUGIN_IO_QLAS_FWF.
Compiled in this way CloudCompare Can achieve las Import and export of format point cloud .
The following figure shows the display of a point cloud :
2、CloudComapre Implementation of point cloud thinning plug-in
CLoudCompare Provides the basis for GL Visual plug-ins 、 be based on IO Read plug-ins 、 Interface of ordinary function plug-ins , And provides basic examples , As shown in the figure below :
This article rewrites ordinary function plug-ins , Get the plug-in project PointThnningPlugin, Realize the function of point cloud thinning . There are three steps , as follows :
1) modify cmake file , take CMakeLists.txt The project name in is changed to PointThnningPlugin, And add sub projects outside PointThnningPlugin.
2) Modify plug-in description file , Include images Icon 、.qrc Resource file 、info. file .
3) Modify the header file and main program , Will appear in the header file and the main program ExamplePlugin Replace all parts of with PointThnningPlugin.
4) In the main program, the button callback function doAction() Add an algorithm to realize point cloud thinning .
5) Build plug-ins , That is, recompile , And check the PointThnningPlugin Plug in options .
Finally, the compiler gets CloudCompare, As shown in the figure below :
1) Click button ,2) Get the dilution parameter input box ,3) Input the dilution parameter . Get the following thinning effect :
After thinning, the point cloud becomes the original point cloud 20%.
This paper reproduces a random thinning algorithm , That is, through octree construction and segmentation of three-dimensional space , Get a certain number of spatial grids , Each space grid retains a point closest to the center of its own space grid to achieve the thinning of the point cloud .
This study only includes CloudCompare The appearance of , Under its ordinary plug-in interface , Added the function of point cloud thinning , It does not involve ccStdPluginInterface,ccDefaultPluginInterface And other interfaces , It's not about CloudCompare Framework Research , But only when you are familiar with performance can you further learn its mechanism , Next, I will continue to study its appearance , Refer to official documents , This article provides download links https://download.csdn.net/download/CPWWHSU/12678986, Further familiarity CloudComapre The function of , Then return to the original three-dimensional modeling study , Familiar with existing open source libraries (VCGLib、CGAL) The function of , Understand the principle . At the same time, this article provides the source code of point cloud thinning plug-in ( It is reproduced in a random thinning algorithm based on spatial octree ) link https://download.csdn.net/download/CPWWHSU/12678987, Add it to CloudCompare In the source code , You can add a point cloud thinning plug-in . Please understand the shortcomings of this article , Hope to be like everyone , Learning together , Progress together .
边栏推荐
- Ilruntime learning - start from scratch
- Retail philosophy retail psychological warfare after reading -- 7-11 is a good product!
- Unity change default editor
- C#课程设计之员工信息管理系统
- Transplantation of freetype Library
- P2704 [noi2001] artillery position (shape pressure DP)
- Redis data structure
- Go resolve ID card
- Golang 字符串分割,替换和截取
- Luaframwrok handles resource updates
猜你喜欢
How to establish rectangular coordinate system in space
Viz artist advanced script video tutorial -- stringmap use and vertex operation
Clion toolchains are not configured configure disable profile problem solving
My touch screen production "brief history" 2
A tunnel to all ports of the server
Solution détaillée de toutes les formules de fonction de transfert (fonction d'activation) du réseau neuronal MATLAB
Student educational administration management system of C # curriculum design
Are you still watching the weather forecast on TV?
數據庫應用技術課程設計之商城管理系統
[set theory] order relation (hastu example | divisive relation hastu | inclusive relation hastu | refinement relation hastu)
随机推荐
Huawei interview summary during the epidemic
C course design employee information management system
[global product discovery 2] the first pure cloud augmented reality (AR) platform - Israel
About the problem that the editor and the white screen of the login interface cannot be found after the location of unityhub is changed
使用base64编码传图片
Delete the last character of the string in golang
Unity performance optimization
Pulitzer Prize in the field of information graphics - malofiej Award
the installer has encountered an unexpected error installing this package
Ilruntime learning - start from scratch
Base64 and base64url
Jupyter remote server configuration and server startup
P1896 [scoi2005] non aggression (shape pressure DP)
animation
Golang string segmentation, substitution and interception
Unity2019_ Natural ambient light_ Sky box
Viz artist advanced script video tutorial -- stringmap use and vertex operation
Base64编码简介
Detailed explanation of all transfer function (activation function) formulas of MATLAB neural network
Yolo series --- xml2txt script