Go to the documentation of this file.00001
00013 #ifndef UCL_DRONE_COMPUTER_VISION_H
00014 #define UCL_DRONE_COMPUTER_VISION_H
00015 #define PCL_NO_PRECOMPILE
00016
00017
00018 #include <ucl_drone/profiling.h>
00019
00020 #include <boost/shared_ptr.hpp>
00021
00022
00023 #include <ros/package.h>
00024 #include <ros/ros.h>
00025
00026 #include <ucl_drone/ucl_drone.h>
00027
00028
00029 #include <cv_bridge/cv_bridge.h>
00030 #include <image_transport/image_transport.h>
00031 #include <opencv2/calib3d/calib3d.hpp>
00032 #include <opencv2/core/core.hpp>
00033 #include <opencv2/highgui/highgui.hpp>
00034 #include <opencv2/imgproc/imgproc.hpp>
00035 #include <opencv2/nonfree/features2d.hpp>
00036 #include <opencv2/nonfree/gpu.hpp>
00037 #include <opencv2/nonfree/nonfree.hpp>
00038 #include <opencv2/nonfree/ocl.hpp>
00039 #include <opencv2/ocl/ocl.hpp>
00040 #include <opencv2/video/tracking.hpp>
00041
00042
00043 #include <ardrone_autonomy/CamSelect.h>
00044 #include <ardrone_autonomy/Navdata.h>
00045 #include <sensor_msgs/image_encodings.h>
00046 #include <std_msgs/Empty.h>
00047 #include <std_srvs/Empty.h>
00048 #include <ucl_drone/Pose3D.h>
00049 #include <ucl_drone/ProcessedImageMsg.h>
00050
00051
00052
00053 #if DETECTOR_TYPE == TYPE_SIFT
00054
00055 static const cv::SIFT detector(0, 3, 0.1, 15, 2);
00056
00057 #elif DETECTOR_TYPE == TYPE_SURF
00058
00059
00060
00061 static const cv::SurfFeatureDetector detector(1800, 6, 3, false);
00062
00063 #elif DETECTOR_TYPE == TYPE_FAST
00064 static const cv::FastFeatureDetector detector(50);
00065
00066 #elif DETECTOR_TYPE == TYPE_BRISK
00067 static const cv::BRISK detector;
00068
00069 #elif DETECTOR_TYPE == TYPE_ORB
00070 static const cv::OrbFeatureDetector detector(200, 1.4f, 5, 60, 2, 2, cv::ORB::HARRIS_SCORE, 60);
00071 #endif
00072
00073
00074
00075 #if EXTRACTOR_TYPE == TYPE_SIFT
00076 static const cv::SiftDescriptorExtractor extractor;
00077
00078 #elif EXTRACTOR_TYPE == TYPE_SURF
00079 static const cv::SurfDescriptorExtractor extractor(4000, 6, 4, false);
00080
00081 #elif EXTRACTOR_TYPE == TYPE_SURF_128
00082 static const cv::SurfDescriptorExtractor extractor(4000, 6, 4, true);
00083
00084 #elif EXTRACTOR_TYPE == TYPE_ORB
00085 static const cv::OrbDescriptorExtractor extractor;
00086
00087 #elif EXTRACTOR_TYPE == TYPE_FREAK
00088 static const cv::FREAK extractor;
00089
00090 #endif
00091
00092
00093
00094 #include <ucl_drone/opencv_utils.h>
00095
00096 #include <ucl_drone/map/projection_2D.h>
00097
00098 #include <ucl_drone/computer_vision/target.h>
00099
00100 #include <ucl_drone/computer_vision/processed_image.h>
00101
00102 #include <ucl_drone/computer_vision/image_processor.h>
00103
00104 #endif