ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ColorMapUtils.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <Eigen.h>
11 #include <Image.h>
12 #include <Optional.h>
13 #include <RGBDImage.h>
14 #include <ecvMesh.h>
15 
16 #include <memory>
17 #include <vector>
18 
21 
22 namespace cloudViewer {
23 namespace pipelines {
24 namespace color_map {
25 
26 std::tuple<std::vector<geometry::Image>,
27  std::vector<geometry::Image>,
28  std::vector<geometry::Image>,
29  std::vector<geometry::Image>,
30  std::vector<geometry::Image>>
31 CreateUtilImagesFromRGBD(const std::vector<geometry::RGBDImage>& images_rgbd);
32 
33 std::vector<geometry::Image> CreateDepthBoundaryMasks(
34  const std::vector<geometry::Image>& images_depth,
35  double depth_threshold_for_discontinuity_check,
36  int half_dilation_kernel_size_for_discontinuity_map);
37 
38 std::tuple<std::vector<std::vector<int>>, std::vector<std::vector<int>>>
40  const ccMesh& mesh,
41  const std::vector<geometry::Image>& images_depth,
42  const std::vector<geometry::Image>& images_mask,
43  const camera::PinholeCameraTrajectory& camera_trajectory,
44  double maximum_allowable_depth,
45  double depth_threshold_for_visibility_check);
46 
48  const ccMesh& mesh,
49  const std::vector<geometry::Image>& images_gray,
50  const cloudViewer::utility::optional<std::vector<ImageWarpingField>>&
51  warping_fields,
52  const camera::PinholeCameraTrajectory& camera_trajectory,
53  const std::vector<std::vector<int>>& visibility_vertex_to_image,
54  std::vector<double>& proxy_intensity,
55  int image_boundary_margin);
56 
58  ccMesh& mesh,
59  const std::vector<geometry::Image>& images_color,
60  const cloudViewer::utility::optional<std::vector<ImageWarpingField>>&
61  warping_fields,
62  const camera::PinholeCameraTrajectory& camera_trajectory,
63  const std::vector<std::vector<int>>& visibility_vertex_to_image,
64  int image_boundary_margin = 10,
65  int invisible_vertex_color_knn = 3);
66 
67 } // namespace color_map
68 } // namespace pipelines
69 } // namespace cloudViewer
Triangular mesh.
Definition: ecvMesh.h:35
void SetProxyIntensityForVertex(const ccMesh &mesh, const std::vector< geometry::Image > &images_gray, const utility::optional< std::vector< ImageWarpingField >> &warping_fields, const camera::PinholeCameraTrajectory &camera_trajectory, const std::vector< std::vector< int >> &visibility_vertex_to_image, std::vector< double > &proxy_intensity, int image_boundary_margin)
std::tuple< std::vector< std::vector< int > >, std::vector< std::vector< int > > > CreateVertexAndImageVisibility(const ccMesh &mesh, const std::vector< geometry::Image > &images_depth, const std::vector< geometry::Image > &images_mask, const camera::PinholeCameraTrajectory &camera_trajectory, double maximum_allowable_depth, double depth_threshold_for_visibility_check)
std::tuple< std::vector< geometry::Image >, std::vector< geometry::Image >, std::vector< geometry::Image >, std::vector< geometry::Image >, std::vector< geometry::Image > > CreateUtilImagesFromRGBD(const std::vector< geometry::RGBDImage > &images_rgbd)
std::vector< geometry::Image > CreateDepthBoundaryMasks(const std::vector< geometry::Image > &images_depth, double depth_threshold_for_discontinuity_check, int half_dilation_kernel_size_for_discontinuity_map)
void SetGeometryColorAverage(ccMesh &mesh, const std::vector< geometry::Image > &images_color, const utility::optional< std::vector< ImageWarpingField >> &warping_fields, const camera::PinholeCameraTrajectory &camera_trajectory, const std::vector< std::vector< int >> &visibility_vertex_to_image, int image_boundary_margin, int invisible_vertex_color_knn)
Generic file read and write utility for python interface.