shaper icon indicating copy to clipboard operation
shaper copied to clipboard

A C++ tool for 3D reconstruction from parallel 2D sections

shaper: A C++ tool for 3D reconstruction from parallel 2D sections

Demos

  • A voxel model that reconstructs the volume between lightning and star shapes (visualized in Mathematica):
  • A voxel model containing ~100 layers reconstructed from 25 sections (visualized in Mathematica):

How do I run the procedure?

In main() function of shaper.cpp user needs to specify values of n (number of input sections) and m (number of output subsections between each pair of consecutive sections). Here is the schematic:

Input sections must be PNG images named as "1.png", "2.png" etc and placed in the same directory with shaper.cpp. A code produces sets of subsections (also PNG images) between each pair of consecutive sections. The subsections are saved in the same directory and named as "1_1.png", "1_2.png" etc.

For example, if n=3 and m=2 the resultant sequence will be: "1.png", "1_1.png", "1_2.png", "2.png", "2_1.png", "2_2.png", "3.png"

Important:

  • Procedure can handle multi-phase reconstruction - each phase should be represented with its unique color throughout
  • Procedure requires "clean" colors - without noise, color variation etc

Credits

STB public domain libraries: https://github.com/nothings/stb

Author

Paul Knysh