performs the projection of a camera image to a polygonal primitive More...
#include "camera_projection.h"#include <ros/ros.h>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/core/core.hpp>#include <sensor_msgs/PointCloud2.h>#include <pcl/ros/conversions.h>#include <pcl/point_cloud.h>#include <pcl/point_types.h>#include <pcl_ros/point_cloud.h>#include <tf/tf.h>#include "camera_parameters.h"#include "pcl/common/centroid.h"#include <Eigen/Core>#include <Eigen/Geometry>#include <tf/transform_datatypes.h>#include <tf/transform_listener.h>#include <boost/config.hpp>#include <algorithm>#include <iostream>#include <cstdlib>#include <CGAL/config.h>#include <CGAL/assertions.h>#include <iomanip>#include <string>#include <map>#include <stdexcept>#include <typeinfo>#include <CGAL/basic.h>#include <boost/type_traits/is_same.hpp>#include <functional>#include <CGAL/number_type_basic.h>#include <boost/mpl/if.hpp>#include <CGAL/enum.h>#include <CGAL/tags.h>#include <iterator>#include <boost/function.hpp>#include <boost/iterator.hpp>#include <boost/iterator/detail/enable_if.hpp>#include <boost/iterator/iterator_adaptor.hpp>#include <boost/iterator/iterator_categories.hpp>#include <boost/mpl/not.hpp>#include <boost/mpl/bool.hpp>#include <boost/type_traits/function_traits.hpp>#include <boost/type_traits/is_const.hpp>#include <boost/type_traits/is_class.hpp>#include <boost/type_traits/is_function.hpp>#include <boost/type_traits/is_reference.hpp>#include <boost/type_traits/remove_const.hpp>#include <boost/type_traits/remove_reference.hpp>#include <boost/iterator/detail/config_def.hpp>#include <boost/iterator/detail/config_undef.hpp>#include <boost/type_traits/is_base_and_derived.hpp>#include <boost/mpl/or.hpp>#include <CGAL/Fraction_traits.h>#include <CGAL/Algebraic_structure_traits.h>#include <numeric>#include <CGAL/IO/io_tags.h>#include <utility>#include <cmath>#include <features.h>#include <bits/wordsize.h>#include <limits>#include <math.h>#include <CGAL/Uncertain.h>#include <cfloat>#include <boost/operators.hpp>#include <CGAL/Coercion_traits.h>#include <CGAL/Modular_arithmetic/Residue_type.h>#include <vector>#include <CGAL/Interval_nt.h>#include <CGAL/Root_of_traits.h>#include <CGAL/Kernel/mpl.h>#include <locale>#include <cstring>#include <iosfwd>#include <gmpxx.h>#include <gmp.h>#include <CGAL/Modular_traits.h>#include <CGAL/gmpxx_coercion_traits.h>#include <CGAL/mpz_class.h>#include <CGAL/IO/io.h>#include <CGAL/kernel_assertions.h>#include <boost/type_traits.hpp>#include <list>#include <cstddef>#include <CGAL/Kernel_traits.h>#include <climits>#include <CGAL/Dimension.h>#include <tr1/array>#include <CGAL/Polygon_2/polygon_assertions.h>#include <set>#include <CGAL/circulator.h>#include <CGAL/Polygon_2/Polygon_2_vertex_circulator.h>#include <CGAL/Bbox_2.h>#include <CGAL/array.h>#include <CGAL/aff_transformation_tags.h>#include <CGAL/Origin.h>#include <boost/static_assert.hpp>#include <CGAL/representation_tags.h>#include <CGAL/Kernel/Return_base_tag.h>#include <CGAL/Aff_transformation_2.h>#include <CGAL/Bbox_3.h>#include <CGAL/user_classes.h>#include <memory>#include <CGAL/Handle_for.h>#include <CGAL/number_utils.h>#include <CGAL/determinant.h>#include <CGAL/Cartesian/Point_2.h>#include <CGAL/predicates/kernel_ftC2.h>#include <CGAL/Cartesian/predicates_on_points_2.h>#include <boost/tuple/tuple.hpp>#include <CGAL/Handle_for_virtual.h>#include <CGAL/Conic_misc.h>#include <CGAL/Cartesian/Line_2.h>#include <CGAL/constant.h>#include <CGAL/Cartesian/Vector_3.h>#include <CGAL/predicates/sign_of_determinant.h>#include <CGAL/Cartesian/predicates_on_points_3.h>#include <CGAL/predicates/kernel_ftC3.h>#include <CGAL/Cartesian/Point_3.h>#include <CGAL/constructions/kernel_ftC3.h>#include <CGAL/Cartesian/Plane_3.h>#include <CGAL/Point_2.h>#include <CGAL/Segment_2.h>#include <CGAL/Line_2.h>#include <CGAL/Ray_2.h>#include <CGAL/Point_3.h>#include <CGAL/wmult.h>#include <CGAL/Triangle_2.h>#include <CGAL/squared_distance_utils.h>#include <CGAL/squared_distance_2_1.h>#include <CGAL/Vector_3.h>#include <CGAL/squared_distance_3_0.h>#include <CGAL/Segment_3.h>#include <CGAL/Line_3.h>#include <CGAL/Ray_3.h>#include <CGAL/Plane_3.h>#include <CGAL/Object.h>#include <CGAL/Line_2_Line_2_intersection.h>#include <CGAL/Kernel/global_functions_internal_2.h>#include <CGAL/Straight_2.h>#include <CGAL/Iso_rectangle_2.h>#include <CGAL/Circle_2.h>#include <CGAL/Triangle_3_Triangle_3_do_intersect.h>#include <CGAL/constructions/kernel_ftC2.h>#include <CGAL/Cartesian/solve_3.h>#include <CGAL/Kernel/interface_macros.h>#include <CGAL/Profile_counter.h>#include <CGAL/NT_converter.h>#include <CGAL/Simple_cartesian.h>#include <CGAL/Kernel/Type_equality_wrapper.h>#include <CGAL/Real_embeddable_traits.h>#include <CGAL/Quotient.h>#include <CGAL/Root_of_2.h>#include <CGAL/utils.h>#include <CGAL/MP_Float.h>#include <boost/iterator/transform_iterator.hpp>#include <CGAL/Handle.h>#include <mpfr.h>#include <CGAL/auto_link/auto_link.h>#include <CGAL/GMP/Gmpz_type.h>#include <CGAL/Gmpz.h>#include <CGAL/Gmp_coercion_traits.h>#include <CGAL/Gmpq.h>#include <CGAL/Gmpzf.h>#include <CGAL/gmpxx.h>#include <CGAL/Kernel/function_objects.h>#include <CGAL/Cartesian/function_objects.h>#include <CGAL/FPU.h>#include <CGAL/Static_filter_error.h>#include <CGAL/algorithm.h>#include <CGAL/Polygon_2.h>#include <boost/bind.hpp>#include <CGAL/polygon_function_objects.h>#include <CGAL/Ray_2_Segment_2_intersection.h>#include <CGAL/ch_selected_extreme_points_2.h>#include <CGAL/Partition_2/partition_assertions.h>#include <CGAL/Partition_2/Partitioned_polygon_2.h>#include <sstream>#include <CGAL/Partition_traits_2.h>#include <CGAL/Partition_is_valid_traits_2.h>#include <CGAL/IO/Tee_for_output_iterator.h>#include <CGAL/partition_is_valid_2.h>#include <CGAL/is_y_monotone_2.h>#include <CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h>#include <CGAL/Partition_2/Turn_reverser.h>#include <CGAL/memory.h>#include <CGAL/vector.h>#include <CGAL/Segment_2_Ray_2_intersection.h>#include <stack>#include <tr1/tuple>#include <CGAL/triangulation_assertions.h>#include <CGAL/Triangulation_utils_2.h>#include <CGAL/Default.h>#include <CGAL/iterator.h>#include <CGAL/Dummy_tds_2.h>#include <CGAL/known_bit_size_integers.h>#include <CGAL/IO/File_header_OFF.h>#include <CGAL/Triangulation_ds_vertex_base_2.h>#include <CGAL/Triangulation_ds_face_base_2.h>#include <CGAL/Hilbert_sort_base.h>#include <CGAL/intersection_2.h>#include <CGAL/intersection_3.h>#include <CGAL/squared_distance_2.h>#include "boost/optional.hpp"#include <CGAL/Partition_2/partition_y_monotone_2.h>#include <CGAL/function_objects.h>#include <CGAL/Random.h>#include <CGAL/Iterator_project.h>#include <boost/mpl/assert.hpp>#include <boost/mpl/and.hpp>#include <boost/mpl/logical.hpp>#include <boost/mpl/has_xxx.hpp>#include <CGAL/Arr_enums.h>#include <CGAL/Arrangement_2/Arrangement_2_iterators.h>#include <CGAL/In_place_list.h>#include <CGAL/Arr_default_dcel.h>#include <CGAL/Arr_tags.h>#include <CGAL/Arrangement_2/Arr_traits_adaptor_2.h>#include <CGAL/Arrangement_on_surface_2.h>#include <CGAL/Arr_accessor.h>#include <CGAL/Sweep_line_2/Sweep_line_functors.h>#include <CGAL/Sweep_line_2/Sweep_line_subcurve.h>#include <CGAL/Sweep_line_2/Sweep_line_event.h>#include <CGAL/Multiset.h>#include <CGAL/Basic_sweep_line_2.h>#include <CGAL/Sweep_line_2/Sweep_line_2_utils.h>#include <CGAL/Sweep_line_2.h>#include <CGAL/Boolean_set_operations_2/Gps_base_functor.h>#include <CGAL/Unique_hash_map.h>#include <CGAL/Sweep_line_empty_visitor.h>#include <queue>#include <CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h>#include <CGAL/Boolean_set_operations_2/Gps_traits_decorator.h>#include <CGAL/Sweep_line_2/Arr_construction_subcurve.h>#include <CGAL/Sweep_line_2/Arr_construction_event.h>#include <CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h>#include <CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h>#include <CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h>#include <CGAL/Boolean_set_operations_2/Gps_default_dcel.h>#include <CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h>#include <CGAL/Sweep_line_2/Arr_construction_sl_visitor.h>#include <CGAL/Sweep_line_2/Arr_basic_insertion_traits_2.h>#include <CGAL/Sweep_line_2/Arr_basic_insertion_sl_visitor.h>#include <CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h>#include <CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h>#include <CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h>#include <CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h>#include <CGAL/Arr_dcel_base.h>#include <CGAL/Arrangement_2/Arr_default_planar_topology.h>#include <CGAL/intersections.h>#include <fstream>#include <CGAL/General_polygon_with_holes_2.h>#include <CGAL/Boolean_set_operations_2/Gps_polygon_validation.h>#include <CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h>#include <CGAL/Polygon_2/Polygon_2_simplicity.h>#include <CGAL/Cartesian/Cartesian_base.h>#include <CGAL/Polygon_with_holes_2.h>#include <CGAL/Gps_segment_traits_2.h>#include <CGAL/General_polygon_set_2.h>#include <CGAL/General_polygon_2.h>#include <CGAL/Gps_traits_2.h>#include <pcl_ros/transforms.h>#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>#include <CGAL/Filtered_kernel.h>#include <CGAL/Lazy_exact_nt.h>#include <CGAL/Cartesian_converter.h>#include <new>#include "boost/detail/workaround.hpp"#include "boost/mpl/aux_/config/eti.hpp"#include "boost/mpl/aux_/value_wknd.hpp"#include "boost/variant/detail/config.hpp"#include "boost/blank_fwd.hpp"#include "boost/mpl/arg.hpp"#include "boost/mpl/limits/arity.hpp"#include "boost/mpl/aux_/na.hpp"#include "boost/preprocessor/cat.hpp"#include "boost/preprocessor/enum.hpp"#include "boost/preprocessor/enum_params.hpp"#include <boost/preprocessor/arithmetic/dec.hpp>#include <boost/preprocessor/arithmetic/inc.hpp>#include <boost/preprocessor/config/config.hpp>#include <boost/preprocessor/punctuation/comma_if.hpp>#include <boost/preprocessor/repetition/repeat.hpp>#include "boost/preprocessor/repeat.hpp"#include "boost/mpl/limits/list.hpp"#include "boost/mpl/aux_/lambda_arity_param.hpp"#include "boost/mpl/aux_/template_arity.hpp"#include "boost/mpl/int_fwd.hpp"#include "boost/mpl/aux_/config/ctps.hpp"#include "boost/mpl/aux_/config/ttp.hpp"#include "boost/assert.hpp"#include "boost/mpl/bool_fwd.hpp"#include "boost/call_traits.hpp"#include "boost/detail/reference_content.hpp"#include "boost/mpl/aux_/lambda_support.hpp"#include "boost/type_traits/detail/bool_trait_def.hpp"#include "boost/type_traits/detail/bool_trait_undef.hpp"#include "boost/mpl/int.hpp"#include "boost/mpl/iter_fold.hpp"#include "boost/mpl/next.hpp"#include "boost/mpl/deref.hpp"#include "boost/mpl/pair.hpp"#include "boost/mpl/protect.hpp"#include "boost/variant/variant_fwd.hpp"#include "boost/mpl/list.hpp"#include "boost/variant/detail/backup_holder.hpp"#include "boost/variant/detail/forced_return.hpp"#include "boost/variant/detail/generic_result_type.hpp"#include "boost/mpl/eval_if.hpp"#include "boost/mpl/identity.hpp"#include "boost/preprocessor/inc.hpp"#include "boost/type_traits/has_nothrow_copy.hpp"#include "boost/type_traits/has_trivial_copy.hpp"#include "boost/type_traits/has_trivial_assign.hpp"#include "boost/type_traits/has_nothrow_assign.hpp"#include "boost/variant/detail/bool_trait_def.hpp"#include "boost/variant/detail/bool_trait_undef.hpp"#include "boost/variant/detail/has_nothrow_move.hpp"#include "boost/aligned_storage.hpp"#include "boost/blank.hpp"#include "boost/type_traits/alignment_of.hpp"#include "boost/type_traits/add_const.hpp"#include "boost/type_traits/has_nothrow_constructor.hpp"#include "boost/utility/enable_if.hpp"#include "boost/variant/recursive_wrapper_fwd.hpp"#include "boost/mpl/begin_end.hpp"#include <boost/mpl/empty_fwd.hpp>#include <boost/mpl/sequence_tag.hpp>#include <boost/mpl/aux_/traits_lambda_spec.hpp>#include <boost/mpl/aux_/na_spec.hpp>#include "boost/mpl/find_if.hpp"#include <boost/mpl/front_fwd.hpp>#include "boost/mpl/is_sequence.hpp"#include "boost/mpl/iterator_range.hpp"#include "boost/mpl/iter_fold_if.hpp"#include <boost/mpl/less.hpp>#include <boost/mpl/apply.hpp>#include <boost/mpl/aux_/common_name_wknd.hpp>#include "boost/mpl/push_front.hpp"#include "boost/mpl/same_as.hpp"#include "boost/mpl/size_t.hpp"#include <boost/mpl/fold.hpp>#include <boost/mpl/reverse_fold.hpp>#include <boost/mpl/advance.hpp>#include <boost/mpl/distance.hpp>#include <boost/mpl/next_prior.hpp>#include <boost/mpl/iterator_tags.hpp>#include <boost/mpl/lambda.hpp>#include <boost/mpl/bind.hpp>#include <boost/mpl/aux_/inserter_algorithm.hpp>#include "boost/detail/templated_streams.hpp"#include "boost/variant/static_visitor.hpp"#include "boost/variant/detail/enable_recursive_fwd.hpp"#include "boost/variant/detail/substitute_fwd.hpp"#include "boost/mpl/aux_/preprocessor/params.hpp"#include <boost/mpl/aux_/config/preprocessor.hpp>#include "boost/preprocessor/empty.hpp"#include "boost/preprocessor/iterate.hpp"#include "boost/type_traits/is_pointer.hpp"#include "boost/checked_delete.hpp"#include "boost/variant/detail/make_variant_list.hpp"#include "boost/variant/detail/over_sequence.hpp"#include "boost/mpl/transform.hpp"#include "boost/variant/variant.hpp"#include "boost/variant/recursive_wrapper.hpp"#include <exception>#include "boost/utility/addressof.hpp"#include "boost/type_traits/add_reference.hpp"#include "boost/type_traits/add_pointer.hpp"#include "boost/variant/detail/apply_visitor_unary.hpp"#include "boost/variant/detail/apply_visitor_binary.hpp"#include "boost/type_traits/is_void.hpp"#include <boost/variant.hpp>#include <CGAL/Lazy.h>#include <CGAL/partition_2.h>#include <CGAL/point_generators_2.h>#include <CGAL/Polygon_set_2.h>#include <CGAL/random_polygon_2.h>#include <CGAL/Cartesian.h>#include <CGAL/Boolean_set_operations_2.h>#include "polygon_simplification.h"#include "transform_wrapper.h"#include <CGAL/IO/Color.h>#include <CGAL/Triangulation_2.h>#include <CGAL/Triangulation_vertex_base_2.h>#include <CGAL/Polygon_2_algorithms.h>#include <CGAL/Exact_predicates_exact_constructions_kernel.h>#include <CGAL/Constrained_triangulation_2.h>#include <pcl/segmentation/sac_segmentation.h>#include <pcl/filters/project_inliers.h>#include <pcl/ModelCoefficients.h>#include <visualization_msgs/Marker.h>#include <CGAL/Constrained_Delaunay_triangulation_2.h>
Go to the source code of this file.
performs the projection of a camera image to a polygonal primitive
Definition in file camera_projection.cpp.