Comments (4)
In fact, in my former "digital" library "Imagene", there was a compact (and somewhat faster) model of KhalimskySpaceND. The idea was simply, if you have a bounded domain, to encode all information describing a cell (topology + coordinates) as some 32 bits or 64 bits integer. Then, set of cells (for instance with same dimension) could be encoded as bitsets. Another advantage was that the sign+topology was coded as a (d+1)-bit word, so incidence relations were precomputed as LUT.
So this issue is related to back porting this model of CCellularGridSpaceND into DGtal.
In fact, there is (an old) branch on my repository FastKSpace
https://github.com/JacquesOlivierLachaud/DGtal/tree/FastKSpace
where this is done...
The only problem is that this approach is efficient if you encode the digital sets as bit sets, which was not done at the time. I am afraid also that this branch is no more mergeable due to the improvements made by Roland to have "Unbounded" and "Toric" KSpaces.
from dgtal.
Asking here out of curiosity. What is the difference between KnSpace and the current Khalimsky Space? Where is the bottle neck in current implementation of K-Spaces? And... more generally: is there any "winner" in terms of computational efficiency for a data structure for Cellular Grids and/or Cubical Complexes? I find the literature a little bit too vast to form a clearer idea on this. So asking for insight here.
I am pretty sure the following idea has been explored before, but, what is your opinion on ND cellular complexes in an image grid, which have the occupancy of lower dimension cells encoded in a bitset?
There are 26 lower-dimension cells in a voxel (8 points, 12 edges, 6 faces) plus the d-cell voxel itself.
Maybe it is not superflexible, neither generic for dimensions greater than 3, but it seems... compact.
Anyway, just thinking out-loud, sorry to invade this issue! @dcoeurjo @rolanddenis
from dgtal.
As a reference to what you were illustrating, I link this paper of yours in arxiv: https://arxiv.org/pdf/0906.2767.pdf
And also your branch FastKSpace, but rebased on top of current master: https://github.com/phcerdan/DGtal/tree/fast_kspace
from dgtal.
Thanks for the link and the rebase.
from dgtal.
Related Issues (20)
- Merge/Clarify NumberTraits vs IntegerConverter
- checkLatticeBallQuickHull does not compile if GMP not installed HOT 1
- testIntegerConverter.cpp fails to build when GMP not activated. HOT 2
- Dgtal does not build on Mac M1 because of Catch HOT 3
- Qt5 issue on MacOS HOT 6
- Appveyor bot needs an upgrade HOT 4
- Issue of linking on DGtal website HOT 2
- ITKWriter fails to write images HOT 3
- Build issue with ITK on Apple Silicon HOT 7
- Check scaling issues in Poisson problems with PolygonalDEC operators HOT 1
- Bug in DGtal::functions::Hull2D::computeHullThickness HOT 7
- Issue of links on DGtal website HOT 2
- Documentation issue in RawReader HOT 4
- Add exact computeHullThickness instead angle tolerance
- SurfaceMeshReader/Writer should be documented in moduleIO.dox
- Fix pybind11 and CTEST command in the python binding test on MacOS
- Missing SymmetricConvexExpander.h file HOT 1
- testStabbingCircleComputer failing HOT 4
- testIntegerConverter does not pass anymore
- Reactivate unit-test on windows HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dgtal.