Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef PCL_RANGE_IMAGE_PLANAR_H_
00036 #define PCL_RANGE_IMAGE_PLANAR_H_
00037
00038 #include <pcl/range_image/range_image.h>
00039
00040 namespace pcl
00041 {
00049 class RangeImagePlanar : public RangeImage
00050 {
00051 public:
00052
00053 typedef RangeImage BaseClass;
00054 typedef boost::shared_ptr<RangeImagePlanar> Ptr;
00055 typedef boost::shared_ptr<const RangeImagePlanar> ConstPtr;
00056
00057
00059 PCL_EXPORTS RangeImagePlanar ();
00061 PCL_EXPORTS ~RangeImagePlanar ();
00062
00065 virtual RangeImage*
00066 getNew () const { return new RangeImagePlanar; }
00067
00068
00070 inline Ptr
00071 makeShared () { return Ptr (new RangeImagePlanar (*this)); }
00072
00083 PCL_EXPORTS void
00084 setDisparityImage (const float* disparity_image, int di_width, int di_height,
00085 float focal_length, float base_line, float desired_angular_resolution=-1);
00086
00099 PCL_EXPORTS void
00100 setDepthImage (const float* depth_image, int di_width, int di_height, float di_center_x, float di_center_y,
00101 float di_focal_length_x, float di_focal_length_y, float desired_angular_resolution=-1);
00102
00115 PCL_EXPORTS void
00116 setDepthImage (const unsigned short* depth_image, int di_width, int di_height, float di_center_x, float di_center_y,
00117 float di_focal_length_x, float di_focal_length_y, float desired_angular_resolution=-1);
00118
00132 template <typename PointCloudType> void
00133 createFromPointCloudWithFixedSize (const PointCloudType& point_cloud,
00134 int di_width, int di_height, float di_center_x, float di_center_y,
00135 float di_focal_length_x, float di_focal_length_y,
00136 const Eigen::Affine3f& sensor_pose,
00137 CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f,
00138 float min_range=0.0f);
00139
00140
00141 using RangeImage::calculate3DPoint;
00142 using RangeImage::getImagePoint;
00143
00151 virtual inline void
00152 calculate3DPoint (float image_x, float image_y, float range, Eigen::Vector3f& point) const;
00153
00161 virtual inline void
00162 getImagePoint (const Eigen::Vector3f& point, float& image_x, float& image_y, float& range) const;
00163
00177 PCL_EXPORTS virtual void
00178 getSubImage (int sub_image_image_offset_x, int sub_image_image_offset_y, int sub_image_width,
00179 int sub_image_height, int combine_pixels, RangeImage& sub_image) const;
00180
00182 PCL_EXPORTS virtual void
00183 getHalfImage (RangeImage& half_image) const;
00184
00185 protected:
00186 float focal_length_x_, focal_length_y_;
00187 float focal_length_x_reciprocal_, focal_length_y_reciprocal_;
00188 float center_x_, center_y_;
00189 };
00190 }
00191
00192
00193 #include <pcl/range_image/impl/range_image_planar.hpp>
00194
00195 #endif //#ifndef PCL_RANGE_IMAGE_H_