GithubHelp home page GithubHelp logo

openpointcloud's Introduction

点云数据处理


学习记录开源的资料,学习搭建基于激光雷达设备数据的点云浏览分析软件。一步步记录自己的搭建过程,基于opengGL、c++、Qt搭建 三维可视化引擎,同时基于webgl、js搭建web数据服务引擎

主要思路


1、 UI界面通过Qt + xml | sqlite 配置文件搭建
2、 VIEW可视化引擎基于opengl + glsl + qt,参考osg实现,支持shader的配置、漫游器的定义、操作器的定义
3、 IO可视化引擎其实就是显示数据的,为了便于数据格式的支持,通过IO插件模式设计
4、 MODULE,IO加载数据,VIEW可视化,UI提供交互,目标是做行业应用,通过插件模块化设计(Qt)支持c++和python,扩展ToolBox,
为了支持对切片数据的处理,toolbox的数据处理主要是针对原始文件,将结果切片可视化
5、 TOOL,为了支持海量数据,需要将原始数据切片,所有IO支持的数据格式,可以使用系统的TOOL工具进行快速切片,以可视化

技术流程


1、 针对每项UI | VIEW | IO | MODULE | TOOL涉及到的技术,先寻找并记录可用资源,学习后借鉴引进
2、 先实现客户端工具,再扩展为web版

历程

1、 OnlyViewer项目预览图
分页点云数据展示

VIEW


1、 学习opengl是怎么实现数据渲染的
openGL+GLSL
lighthouse3d
中文GL
初级中级高级GL教程
2、 矩阵运算库
GLM 实现矩阵运算

#include <glm/vec3.hpp> // glm::vec3
#include <glm/vec4.hpp> // glm::vec4
#include <glm/mat4x4.hpp> // glm::mat4
#include <glm/ext/matrix_transform.hpp> // glm::translate, glm::rotate, glm::scale
#include <glm/ext/matrix_clip_space.hpp> // glm::perspective
#include <glm/ext/constants.hpp> // glm::pi

glm::mat4 camera(float Translate, glm::vec2 const& Rotate)
{
	glm::mat4 Projection = glm::perspective(glm::pi<float>() * 0.25f, 4.0f / 3.0f, 0.1f, 100.f);
	glm::mat4 View = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, -Translate));
	View = glm::rotate(View, Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f));
	View = glm::rotate(View, Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f));
	glm::mat4 Model = glm::scale(glm::mat4(1.0f), glm::vec3(0.5f));
	return Projection * View * Model;
}

VCGlib 网格数据结构, meshlab使用此库

技术资料参考

算法库

pcl、cgal、gdal、pdal、geos
Convert massive pointcloud

web引擎

osgjs、cesium、optree、threejs、OpenSfM
Webgl pointcloud visualization of the Via Appia based on potree
OpenSfM is a Structure from Motion library written in Python
potree.entwine.io

客户端引擎

cloudcompare、meshlab、visualiabary、vtk、osg、鬼火、DC-Points
osg框架设计

cad & gis

opencascad 、freecad、qcad、librecad、libdxfrw、teigha、QGis、mapbox、 openstreetmap、leaflet、mapnit
qgis Debug编译展示
qgis debug编译
geoserver/postgressql学习
mapbox studio class编译
freecad编译

UI

Qt

线程

QThreadpool、 boost、simple thread pool

深度学习

tensorflow
tensorflow exam

切片库

entwine
lastool

公开数据

dronemapper

开源网站统计

开源项目

openpointcloud's People

Contributors

longyangzz avatar

Stargazers

 avatar  avatar CrayonSea avatar  avatar zzj avatar

Watchers

James Cloos avatar  avatar  avatar

openpointcloud's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.