tudelft3d / adtree Goto Github PK
View Code? Open in Web Editor NEWAccurate, detailed, and automatic modelling of laser-scanned trees
License: GNU General Public License v3.0
Accurate, detailed, and automatic modelling of laser-scanned trees
License: GNU General Public License v3.0
Thanks to the author for sharing this software, which is very useful. Right now, it seems all the trees use the same type of leaf. I am wondering if the author can add the feature to change the leaves, e.g., the density of the leaves, the shape of the leaves etc.
Hello,
first of all thank you for providing your software.
Since I unfortunately have no idea of programming, but still would like to try your application, a question:
Since you provided a prebuild for version 1.1.0, can I just run it like a normal application on Windows? Could I thus process a point cloud and transfer it as a 3D object for further processing in e.g. Rhino3D?
For version 1.1.1 you have only provided the source code. Unfortunately I have absolutely no idea how I could build this manually (despite instructions).
Would version 1.1.0 be sufficient for my purposes to use trees as 3D objects for further processing in Rhino 3D, or are programming skills required even here?
And what kind of point cloud data is reqired for AdTree?
Greetings,
Ludwig
Are there any prebuilt executables for windows? I don't see it. Thanks
Hello,
I'm sorry I forgot to upload the picture last week.
First, I configured and generated the project with cmake-gui, as shown in the picture named "cmake". Then I opened the project and ran it with VS2019. As a result I got a problem, it showed that cannot open input file "3rd_imgui.lib", as shown in the picture named "problem". And I didn't modify the linker's additional library directory in the project properties because I didn't find any “.libs” files.
could you tell me how to fix it? thank you!
Hello,
If I want to add a ply/obj file as the leaves model, which part of codes should I modify?
Thank you!
Hi,
AdTree is currently limited to .xyz pointcloud format only, but it uses easy3d to load the pointcloud data.
However, many formats are already supported by the latest version of easy3d.
I would like to know if we can update the third-party easy3d to use the latest version of easy3D ? I can understand this migration could affect other functions used in AdTree.
hi, the software was very good for extracting skeleton from point cloud.
Is there anyway to export the skeleton result?
The void TreeViewer::export_skeleton() , const std::string& initial_name = file_system::base_name(cloud()->name()) + "_skeleton.ply"
only return and write a down sampled point cloud, is it possible to get a connected graph output?
when i use cmake to generate this project i get this:
In file included from /home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/viewer/viewer.cpp:62:0:
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h: In lambda function:
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:192:37: error: parameter packs not expanded with ‘...’:
func(std::forward(args)...);
^
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:192:37: note: ‘args’
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h: In lambda function:
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:206:68: error: parameter packs not expanded with ‘...’:
auto f = std::bind(func, owner, std::forward(args)...);
^
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:206:68: note: ‘args’
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h: In lambda function:
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:221:37: error: parameter packs not expanded with ‘...’:
func(std::forward(args)...);
^
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:221:37: note: ‘args’
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h: In lambda function:
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:238:64: error: parameter packs not expanded with ‘...’:
auto f = std::bind(func, owner, std::forward(args)...);
^
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:238:64: note: ‘args’
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h: In lambda function:
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:254:41: error: parameter packs not expanded with ‘...’:
func(std::forward(args)...);
^
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:254:41: note: ‘args’
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h: In lambda function:
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:273:68: error: parameter packs not expanded with ‘...’:
auto f = std::bind(func, owner, std::forward(args)...);
^
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:273:68: note: ‘args’
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h: In instantiation of ‘struct easy3d::Timer::single_shot(int, Function&&, Args&& ...) [with Function = easy3d::Viewer::mouse_press_event(int, int, int, int)::__lambda16; Args = {}]::__lambda0’:
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:193:10: required from ‘static void easy3d::Timer::single_shot(int, Function&&, Args&& ...) [with Function = easy3d::Viewer::mouse_press_event(int, int, int, int)::__lambda16; Args = {}]’
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/viewer/viewer.cpp:515:18: required from here
/home/rthpc/anaconda3/envs/code/ADTree/3rd_party/easy3d/util/timer.h:192:37: error: using invalid field ‘easy3d::Timer::single_shot(int, Function&&, Args&& ...)::__lambda0::__args’
func(std::forward(args)...);
^
make[2]: *** [3rd_party/easy3d/viewer/CMakeFiles/viewer.dir/viewer.cpp.o] 错误 1
make[1]: *** [3rd_party/easy3d/viewer/CMakeFiles/viewer.dir/all] 错误 2
make: *** [all] 错误 2
could you tell me how to fix it? thank you :)
Dear Developers.
I have my own skeleton file and information about the diameters at different locations, and I would like to use this software to generate him as a tree without leaves. In fact, I am trying to develop an airway model, which is actually very much like a tree. I have calculated its skeleton and its width at different locations. But I am not very good at programming and I need your help.
All the best,
GuoWeiqi
Hi there,
The batch processing is very useful - thanks for adding. I was just wondering would it be possible that this could also support the exporting of the skeletons? Rather than just the meshes?
Cheers,
Harry
Hi.
I'm really amazed by what your program can do, however i can't seem to get the (prebuilt) Adtree.exe (v1.12 for windows) to work.
I've tried to install the VC-redist.x64.exe but i get an error message saying i'v allready got a newer version installed.
Any idea's to what i can try to make the prebuilt exe work?
Kind regards,
Robin
This is just a question, not exactly an issue. The linux executable is great, and ran immediately. When I look at the saved skeleton output though, it appears to be a pointcloud only (image below). One of the important parts of a skeleton is the connectivity information between various points. Is it possible to view/access that connectivity information somehow?
Here's the tree I'm starting with:
And the resulting ply
file from "Export skeleton" visualized in CloudCompare:
Hello,
I have a problem when I run the project with Microsoft Visual Studio 2019,it shows that cannot open input file "3rd_imgui.lib". But I don't find any ".lib" file in the project.
could you tell me how to fix it? thank you!
Thanks a lot for making such a good tool to extract the tree skeleton and mesh, it works perfect on our data.
But when analyzing the mesh, I found there are several inner and intersections among each branches. This is not convenicence for the Volume calculation.
I have tried several tools like Blender and CloudCompare to fixing this "non-manifold" problem but failed. I am wondering if it can be fixed at the data source, whether AdTree can export the clean up meshes directly.
PS: the manifold mesh means, the mesh model only has the skin surface without holes or any faces inside the object.
Extra null pointer checks are not needed in functions like the following.
Hello, please may I know if I can use AdTree to model airborne point clouds (vegetation) or do I need to have a terrestrial point cloud? Thank you in advance.
In skeleton.cpp on line 837:
dendiff = abs(currentDensity - ptDensity);
Shouldn't this be:
dendiff += abs(currentDensity - ptDensity);
As with the current implementation you are only look at the density of the point last iterated in the loop, rather than the neighborhood average?
Or is my understanding of the code wrong?
Cheers,
Harry
Hello!
Firstly, I would like to express my sincere apologies for not responding to you in a timely manner due to personal reasons recently.
The code and running results that were not displayed last time are as follows:
I have modified the code according to your suggestion. The font has been changed but still cannot display Chinese. Could you please give me some more suggestions? Thank you very much!
Hello, I am interested in analyzing the fine-scale structure of tree branches with your application. However, there is no way to extract individual cylinders from the output model. All of the cylinders are fused together as a giant mesh. Is there a way to break apart the mesh, or add a flag to export all the cylinders in a row-based format like .csv? Thanks in advance, the outputs of your application are impressive and I'm interested in analyzing trees using it
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.