当前位置:网站首页>Rebuild my 3D world [open source] [serialization-2]
Rebuild my 3D world [open source] [serialization-2]
2022-07-05 08:55:00 【Li Yingsong~】
Today, I took some photos of the blue sky and white clouds in the park , Choose one to share with you
Follow the previous one for reconstruction 3D After the world series started , Bloggers are not resting , On the one hand, in the communication with friends , There are many suggestions for me Colmap replace OpenMVG To complete SFM part , The reason is that Colmap Of SFM than OpenMVG More stable , This makes bloggers have other ideas on the scheme , It's actually a choice Colmap+OpenMVS still OpenMVG+OpenMVS, Practice leads to true knowledge , I will compile at the same time Colmap and OpenMVG, Test some data to observe the results before making a decision , I will open another blog to sort out the test results .
Have to say ,Colmap The compilation of is really very troublesome , Compared with OpenMVG It seems very easy , I'm not only trying to compile myself these days , Also looking for a friend orange [ Big orange's blog ] Want a version that he compiles . The process is not easy .
In other words , Take advantage of the neutral position of compilation , We can't be idle , Rookie QT The road of practice is still long and far away , This article brings you some efforts and progress in the interface .
List of articles
1 The image can be controlled and previewed
As we mentioned earlier , stay UI Image loading and display are realized in , But this is only the first step , Some image interactions that must be followed , Including image pan and zoom , Are very basic functions . I overloaded the image view control , And rewrite the drawing function in the drawing event . For details, please refer to the source code QImgViewWidget Class implementation .
Besides , I also added the multi image preview function , In this way, you can have a preliminary browse of the entire image set , The preview image generation of the whole image set is relatively slow , So I rewrite an inheritance from QThread The preview of updates the thread class QUpdatePreviewThread To complete the generation of background preview .
Here is the specific operation demonstration video :
Rebuild my 3D The world : Image operation demonstration -1
To view HD video, please click : Rebuild my 3D The world : Image operation demonstration -1
2 The window can be adaptive
As QT rookie , Window adaptation was not done in the previous article , Mainly based on implementation modules , Now? , This part also adds , Operate the zoom of the whole main interface , The internal sub window will also change its size adaptively . Concrete , I overloaded in the main window resizeEvent Method , A size adaptation is made for all windows .
Here is the specific operation demonstration video :
Rebuild my 3D The world : Adaptive window demo -1
To view HD video, please click : Rebuild my 3D The world : Adaptive window demo -1
3 A little progress of the model display window
Model display window , Is based on OpenGL 3D display window , I'm also thinking about using existing mature rendering engines such as OSG, Or based on OpenGL A more primitive implementation of , Finally, I decided to use the latter for the time being , At the beginning, try to lighten it . The current development is to write an overload with QOpenGLWidget Window class of QModelViewGLWidget, And overloaded the basic rendering related methods, such as initializeGL、resizeGL、paintGL, But the specific implementation has not been completed .
4 Temporarily removed the right OpenCV and Eigen Dependence
The above said , At the beginning, I hope the whole project will remain light , At present, it is not used OpenCV and EIgen The place of , Maybe it will be added later , But for the time being, let's remove .
5 The source code has been updated
The above operation , I'm all in Github The warehouse is updated in real time , As you can pull Down to experience .
Project source code address :TellusBuilder
Interested students , It is suggested to click star and watch, Of course, based on my work, what I want to do in the future is also welcome fork ah .**
边栏推荐
- uni-app 实现全局变量
- Bit operation related operations
- 12. Dynamic link library, DLL
- Use and programming method of ros-8 parameters
- Programming implementation of ROS learning 2 publisher node
- 深度学习模型与湿实验的结合,有望用于代谢通量分析
- Codeworks round 681 (Div. 2) supplement
- Guess riddles (10)
- The location search property gets the login user name
- Redis implements a high-performance full-text search engine -- redisearch
猜你喜欢
Digital analog 1: linear programming
Guess riddles (9)
Yolov4 target detection backbone
Confusing basic concepts member variables local variables global variables
Summary of "reversal" problem in challenge Programming Competition
Hello everyone, welcome to my CSDN blog!
C# LINQ源码分析之Count
Halcon shape_ trans
Guess riddles (8)
Redis实现高性能的全文搜索引擎---RediSearch
随机推荐
Guess riddles (9)
Digital analog 2: integer programming
嗨 FUN 一夏,与 StarRocks 一起玩转 SQL Planner!
RT-Thread内核快速入门,内核实现与应用开发学习随笔记
Golang foundation - the time data inserted by golang into MySQL is inconsistent with the local time
Hello everyone, welcome to my CSDN blog!
LLVM之父Chris Lattner:为什么我们要重建AI基础设施软件
Guess riddles (6)
uni-app 实现全局变量
Multiple linear regression (gradient descent method)
Golang foundation -- map, array and slice store different types of data
Illustrated network: what is gateway load balancing protocol GLBP?
Business modeling of software model | overview
C#绘制带控制点的Bezier曲线,用于点阵图像及矢量图形
Halcon Chinese character recognition
Chris LATTNER, the father of llvm: why should we rebuild AI infrastructure software
Latex improve
asp.net(c#)的货币格式化
Task failed task_ 1641530057069_ 0002_ m_ 000000
Digital analog 1: linear programming