00001 00004 /*M/////////////////////////////////////////////////////////////////////////////////////// 00005 // 00006 // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. 00007 // 00008 // By downloading, copying, installing or using the software you agree to this license. 00009 // If you do not agree to this license, do not download, install, 00010 // copy or use the software. 00011 // 00012 // 00013 // License Agreement 00014 // For Open Source Computer Vision Library 00015 // 00016 // Copyright (C) 2000-2008, Intel Corporation, all rights reserved. 00017 // Copyright (C) 2009, Willow Garage Inc., all rights reserved. 00018 // Third party copyrights are property of their respective owners. 00019 // 00020 // Redistribution and use in source and binary forms, with or without modification, 00021 // are permitted provided that the following conditions are met: 00022 // 00023 // * Redistribution's of source code must retain the above copyright notice, 00024 // this list of conditions and the following disclaimer. 00025 // 00026 // * Redistribution's in binary form must reproduce the above copyright notice, 00027 // this list of conditions and the following disclaimer in the documentation 00028 // and/or other materials provided with the distribution. 00029 // 00030 // * The name of the copyright holders may not be used to endorse or promote products 00031 // derived from this software without specific prior written permission. 00032 // 00033 // This software is provided by the copyright holders and contributors "as is" and 00034 // any express or implied warranties, including, but not limited to, the implied 00035 // warranties of merchantability and fitness for a particular purpose are disclaimed. 00036 // In no event shall the Intel Corporation or contributors be liable for any direct, 00037 // indirect, incidental, special, exemplary, or consequential damages 00038 // (including, but not limited to, procurement of substitute goods or services; 00039 // loss of use, data, or profits; or business interruption) however caused 00040 // and on any theory of liability, whether in contract, strict liability, 00041 // or tort (including negligence or otherwise) arising in any way out of 00042 // the use of this software, even if advised of the possibility of such damage. 00043 // 00044 //M*/ 00045 00046 #ifndef CORELIB_SRC_OPENCV_ORB_H_ 00047 #define CORELIB_SRC_OPENCV_ORB_H_ 00048 00049 #include <opencv2/features2d/features2d.hpp> 00050 00051 namespace rtabmap { 00052 00053 class FAST; 00054 00058 class CV_ORB : public cv::Feature2D 00059 { 00060 public: 00061 // the size of the signature in bytes 00062 enum { kBytes = 32, HARRIS_SCORE=0, FAST_SCORE=1 }; 00063 00064 CV_WRAP explicit CV_ORB(int nfeatures = 500, float scaleFactor = 1.2f, int nlevels = 8, int edgeThreshold = 31, 00065 int firstLevel = 0, int WTA_K=2, int scoreType=CV_ORB::HARRIS_SCORE, int patchSize=31, const ParametersMap & fastParameters=ParametersMap()); 00066 00067 // returns the descriptor size in bytes 00068 int descriptorSize() const; 00069 // returns the descriptor type 00070 int descriptorType() const; 00071 00072 // Compute the ORB features and descriptors on an image 00073 void operator()(cv::InputArray image, cv::InputArray mask, std::vector<cv::KeyPoint>& keypoints) const; 00074 00075 // Compute the ORB features and descriptors on an image 00076 void operator()( cv::InputArray image, cv::InputArray mask, std::vector<cv::KeyPoint>& keypoints, 00077 cv::OutputArray descriptors, bool useProvidedKeypoints=false ) const; 00078 00079 protected: 00080 00081 void computeImpl( const cv::Mat& image, std::vector<cv::KeyPoint>& keypoints, cv::Mat& descriptors ) const; 00082 void detectImpl( const cv::Mat& image, std::vector<cv::KeyPoint>& keypoints, const cv::Mat& mask=cv::Mat() ) const; 00083 00084 CV_PROP_RW int nfeatures; 00085 CV_PROP_RW double scaleFactor; 00086 CV_PROP_RW int nlevels; 00087 CV_PROP_RW int edgeThreshold; 00088 CV_PROP_RW int firstLevel; 00089 CV_PROP_RW int WTA_K; 00090 CV_PROP_RW int scoreType; 00091 CV_PROP_RW int patchSize; 00092 00093 ParametersMap fastParameters; 00094 }; 00095 00096 } 00097 00098 00099 #endif /* CORELIB_SRC_OPENCV_ORB_H_ */