Added GFTT+ORB detector type

This commit is contained in:
matlabbe
2015-11-11 12:08:20 -05:00
parent 0dedc62ce8
commit d1eec16222
4 changed files with 66 additions and 7 deletions

View File

@@ -98,7 +98,8 @@ public:
kFeatureFastBrief=4, kFeatureFastBrief=4,
kFeatureGfttFreak=5, kFeatureGfttFreak=5,
kFeatureGfttBrief=6, kFeatureGfttBrief=6,
kFeatureBrisk=7}; kFeatureBrisk=7,
kFeatureGfttOrb=8}; //new 0.10.11
static Feature2D * create(Feature2D::Type & type, const ParametersMap & parameters); static Feature2D * create(Feature2D::Type & type, const ParametersMap & parameters);
@@ -360,6 +361,23 @@ private:
cv::Ptr<CV_FREAK> _freak; cv::Ptr<CV_FREAK> _freak;
}; };
//GFTT_ORB
class RTABMAP_EXP GFTT_ORB : public GFTT
{
public:
GFTT_ORB(const ParametersMap & parameters = ParametersMap());
virtual ~GFTT_ORB();
virtual void parseParameters(const ParametersMap & parameters);
virtual Feature2D::Type getType() const {return kFeatureGfttOrb;}
private:
virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
private:
ORB _orb;
};
//BRISK //BRISK
class RTABMAP_EXP BRISK : public Feature2D class RTABMAP_EXP BRISK : public Feature2D
{ {

View File

@@ -250,7 +250,7 @@ class RTABMAP_EXP Parameters
RTABMAP_PARAM(FAST, Gpu, bool, false, "GPU-FAST: Use GPU version of FAST. This option is enabled only if OpenCV is built with CUDA and GPUs are detected."); RTABMAP_PARAM(FAST, Gpu, bool, false, "GPU-FAST: Use GPU version of FAST. This option is enabled only if OpenCV is built with CUDA and GPUs are detected.");
RTABMAP_PARAM(FAST, GpuKeypointsRatio, double, 0.05, "Used with FAST GPU."); RTABMAP_PARAM(FAST, GpuKeypointsRatio, double, 0.05, "Used with FAST GPU.");
RTABMAP_PARAM(GFTT, QualityLevel, double, 0.001, ""); RTABMAP_PARAM(GFTT, QualityLevel, double, 0.0001, "");
RTABMAP_PARAM(GFTT, MinDistance, double, 5, ""); RTABMAP_PARAM(GFTT, MinDistance, double, 5, "");
RTABMAP_PARAM(GFTT, BlockSize, int, 3, ""); RTABMAP_PARAM(GFTT, BlockSize, int, 3, "");
RTABMAP_PARAM(GFTT, UseHarrisDetector, bool, false, ""); RTABMAP_PARAM(GFTT, UseHarrisDetector, bool, false, "");

View File

@@ -1071,7 +1071,7 @@ cv::Mat GFTT_BRIEF::generateDescriptorsImpl(const cv::Mat & image, std::vector<c
} }
////////////////////////// //////////////////////////
//FAST-FREAK //GFTT-FREAK
////////////////////////// //////////////////////////
GFTT_FREAK::GFTT_FREAK(const ParametersMap & parameters) : GFTT_FREAK::GFTT_FREAK(const ParametersMap & parameters) :
GFTT(parameters), GFTT(parameters),
@@ -1123,6 +1123,32 @@ cv::Mat GFTT_FREAK::generateDescriptorsImpl(const cv::Mat & image, std::vector<c
return descriptors; return descriptors;
} }
//////////////////////////
//GFTT-ORB
//////////////////////////
GFTT_ORB::GFTT_ORB(const ParametersMap & parameters) :
GFTT(parameters),
_orb(parameters)
{
parseParameters(parameters);
}
GFTT_ORB::~GFTT_ORB()
{
}
void GFTT_ORB::parseParameters(const ParametersMap & parameters)
{
GFTT::parseParameters(parameters);
_orb.parseParameters(parameters);
}
cv::Mat GFTT_ORB::generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const
{
UASSERT(!image.empty() && image.channels() == 1 && image.depth() == CV_8U);
return _orb.generateDescriptors(image, keypoints);
}
////////////////////////// //////////////////////////
//BRISK //BRISK
////////////////////////// //////////////////////////

View File

@@ -63,9 +63,9 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>-566</y>
<width>759</width> <width>755</width>
<height>966</height> <height>1764</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_16"> <layout class="QVBoxLayout" name="verticalLayout_16">
@@ -86,7 +86,7 @@
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>3</number> <number>23</number>
</property> </property>
<widget class="QWidget" name="page_22"> <widget class="QWidget" name="page_22">
<layout class="QVBoxLayout" name="verticalLayout_29"> <layout class="QVBoxLayout" name="verticalLayout_29">
@@ -4749,6 +4749,11 @@ see Sqlite3 doc 'PRAGMA temp_store'.</string>
<string>BRISK</string> <string>BRISK</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>GFTT+ORB</string>
</property>
</item>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="0" column="1">
@@ -7927,6 +7932,11 @@ Lower the ratio -&gt; higher the precision. 0 means disabled, matching the neare
<string>BRISK</string> <string>BRISK</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>GFTT+ORB</string>
</property>
</item>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="1" column="1">
@@ -9290,6 +9300,11 @@ Lower the ratio -&gt; higher the precision. 0 means disabled, matching the neare
<string>BRISK</string> <string>BRISK</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>GFTT+ORB</string>
</property>
</item>
</widget> </widget>
</item> </item>
</layout> </layout>