Reconstruction related tasksLink
UndistortedLink
This task class is used to "undistort" images obtained by a camera that may not have a perfect lens.
It produces a Fileset
of rgb images saved under the task id.
ColmapLink
This task class is used to estimate camera poses from a set of RGB images. By default, it is downstream ImagesFilesetExists (raw scan) An alternative upstream task choice could be the Undistorted. It produces ??? (TODO)
Clarification required!
- don't we use the positions (x, y, z, pan) from the CNC & gimbal ?
- why do we compute the sparse reconstruction (point-cloud) ?
MasksLink
This task class is used to create a binary mask of each (real or virtual) plant RGB image. By default, it is downstream the Undistorted task. An alternative upstream task choice could be the Undistorted.
The following methods are available to compute masks:
- linear
- excess_green
- vesselness
- invert
Clarification required!
- document mask algorithms!
It produces a Fileset
of binary images saved under the task id.
VoxelsLink
This task class is used to compute a volume (ref?) from back-projection of the binary (Masks task) or labelled (Segmentation2D task) masks. By default, it is downstream the Masks & Colmap tasks.
The following methods are available to compute back-projection:
- carving
- averaging
Clarification required!
- what is a volume ?! the difference with "point-cloud" is not too clear... * document back-projection algorithms!
It produces a 3D array saved as NPZ (compressed numpy array). This array may be binary if downstream of the Masks task, or a labelled array if downstream the Segmentation2D task.
PointCloudLink
This task class is used to transform the binary volumetric data, from the Voxels tasks into an open3d
3D point-cloud.
By default, it is downstream the Voxels task.
It uses an Exact Euclidean distance transform method (ref?).
It produces a PLY file.
TriangleMeshLink
This task class is used to transform a 3D point-cloud into an open3d
3D triangulated mesh.
By default, it is downstream the PointCloud task.
It uses the poisson_mesh
method from the CGAL library described here.
It produces a PLY file.
CurveSkeletonLink
This task class is used to compute a skeleton (ref?) from a 3D triangulated mesh. By default, it is downstream the PointCloud task.
It uses the skeletonize_mesh
method from the CGAL library described here.
It produces a PLY file.
TreeGraphLink
This task class is used to generate a tree graph structure (ref?) from a skeleton. By default, it is downstream the CurveSkeleton task.
It uses networkx
Python package to compute a minimum spanning tree with ??? (TODO)
It produces a JSON file ??? (TODO)
AnglesAndInternodesLink
This task class is used to compute angles and internodes between successive organs along the main stem. By default, it is downstream the TreeGraph task.
It produces a JSON file ??? (TODO)
Segmentation2DLink
This task class is used to
SegmentedPointCloudLink
This task class is used to transform the multiclass volumetric data, from the Segmentation2D tasks into an open3d
labelled 3D point-cloud.
By default, it is downstream the Segmentation2D task.
It produces a PLY file.
ClusteredMeshLink
This task class is used to transform a labelled 3D point-cloud into an open3d
3D triangulated mesh.
By default, it is downstream the SegmentedPointCloud task.
It produces a PLY file.