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 EXPNDTFRAMEPROC_HH
00036 #define EXPNDTFRAMEPROC_HH
00037
00038 #include <ndt_feature_reg/ndt_frame.h>
00039 #include <ndt_matcher_d2d_feature.h>
00040 #include <opencv2/nonfree/features2d.hpp>
00041 #include <opencv2/nonfree/nonfree.hpp>
00042 #include <ndt_feature_reg/ndt_frame_proc.h>
00043
00044 namespace ndt_feature_reg
00045 {
00046 class ExpNDTFrameProc : public ndt_feature_reg::NDTFrameProc
00047 {
00048 public:
00049
00050 using NDTFrameProc::pe;
00051 using NDTFrameProc::detector;
00052 using NDTFrameProc::extractor;
00053 using NDTFrameProc::img_scale;
00054 using NDTFrameProc::trim_factor;
00055 using NDTFrameProc::non_mean;
00056 using NDTFrameProc::frames;
00057 using NDTFrameProc::transformVector;
00058
00059 typedef Eigen::Transform<double,3,Eigen::Affine,Eigen::ColMajor> EigenTransform;
00060
00061
00062 void trimNbFrames (size_t maxNbFrames);
00063 void addFrameIncremental (NDTFrame *f, bool skipMatching, bool ndtEstimateDI = false,
00064 bool match_full = false, bool match_no_association = false);
00065
00066 ExpNDTFrameProc(int nb_ransac, double max_inldist_xy, double max_inldist_z):NDTFrameProc(nb_ransac,max_inldist_xy,max_inldist_z)
00067 {
00068 }
00069
00070 virtual ~ExpNDTFrameProc()
00071 {
00072 for(size_t i =0; i<frames.size(); i++)
00073 {
00074 delete frames[i];
00075 }
00076 frames.clear();
00077 }
00078 private:
00079 void detectKeypoints(NDTFrame *f) const;
00080 void calcDescriptors(NDTFrame *f) const;
00081 public:
00082 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
00083
00084 };
00085
00086
00087
00088 }
00089
00090 #include <ndt_feature_reg/impl/exp_ndt_frame_proc.hpp>
00091 #endif