From 0f30ec8504f8b4d54911d78fa6252dd479c0f154 Mon Sep 17 00:00:00 2001 From: asantamaria <asantamaria@iri.upc.edu> Date: Tue, 22 Aug 2017 11:23:29 +0200 Subject: [PATCH] opencv3 enabled --- src/examples/processor_image_ORB.yaml | 3 ++- src/processor_image_feature.cpp | 25 +++++++++++++++++++++---- src/processor_image_landmark.cpp | 26 ++++++++++++++++++++++---- 3 files changed, 45 insertions(+), 9 deletions(-) diff --git a/src/examples/processor_image_ORB.yaml b/src/examples/processor_image_ORB.yaml index bc0d69a7f..c405e4ac0 100644 --- a/src/examples/processor_image_ORB.yaml +++ b/src/examples/processor_image_ORB.yaml @@ -14,7 +14,8 @@ detector-descriptor: matcher: minimum normalized score: 0.85 - similarity norm: 6 # enum { NORM_INF=1, NORM_L1=2, NORM_L2=4, NORM_L2SQR=5, NORM_HAMMING=6, NORM_HAMMING2=7, NORM_TYPE_MASK=7, NORM_RELATIVE=8, NORM_MINMAX=32 }; + similarity norm: 6 # OpenCV 3 enum { BruteForce=1 (it uses L2 ), BruteForce-L1=2, BruteForce-Hamming=3, BruteForce-Hamming(2)=4, FlannBased=5}; + # OpenCV 2 enum { NORM_INF=1, NORM_L1=2, NORM_L2=4, NORM_L2SQR=5, NORM_HAMMING=6, NORM_HAMMING2=7, NORM_TYPE_MASK=7, NORM_RELATIVE=8, NORM_MINMAX=32 }; roi: width: 20 height: 20 diff --git a/src/processor_image_feature.cpp b/src/processor_image_feature.cpp index 0c6155214..3a607da16 100644 --- a/src/processor_image_feature.cpp +++ b/src/processor_image_feature.cpp @@ -56,9 +56,27 @@ ProcessorImageFeature::ProcessorImageFeature(ProcessorParamsImage _params) : } // 2. matcher params -// TODO: FIX this - matcher_ptr_ = cv::DescriptorMatcher::create("BruteForce"); -// matcher_ptr_ = cv::DescriptorMatcher::create(_params.matcher.similarity_norm); + // TODO: FIX this. Problems initializing with int (cv::DescriptorMatcher::create(int matcherType) + std::string matcherType = "BruteForce-Hamming"; // Default + switch (_params.matcher.similarity_norm) + { + case 1: + matcherType = "BruteForce"; + break; + case 2: + matcherType = "BruteForce-L1"; + break; + case 3: + matcherType = "BruteForce-Hamming"; + break; + case 4: + matcherType = "BruteForce-Hamming(2)"; + break; + case 5: + matcherType = "FlannBased"; + break; + } + matcher_ptr_ = cv::DescriptorMatcher::create(matcherType); } #else @@ -108,7 +126,6 @@ ProcessorImageFeature::ProcessorImageFeature(ProcessorParamsImage _params) : // 2. matcher params matcher_ptr_ = std::make_shared<cv::BFMatcher>(_params.matcher.similarity_norm); - } #endif diff --git a/src/processor_image_landmark.cpp b/src/processor_image_landmark.cpp index 7e45c8188..e9bd3cff8 100644 --- a/src/processor_image_landmark.cpp +++ b/src/processor_image_landmark.cpp @@ -62,9 +62,28 @@ ProcessorImageLandmark::ProcessorImageLandmark(const ProcessorParamsImage& _para } // 2. matcher params - // TODO: FIX this - matcher_ptr_ = cv::DescriptorMatcher::create("BruteForce"); - // matcher_ptr_ = cv::DescriptorMatcher::create(_params.matcher.similarity_norm); + // TODO: FIX this. Problems initializing with int (cv::DescriptorMatcher::create(int matcherType) + std::string matcherType = "BruteForce-Hamming"; // Default + switch (_params.matcher.similarity_norm) + { + case 1: + matcherType = "FlannBased"; + break; + case 2: + matcherType = "BruteForce"; + break; + case 3: + matcherType = "BruteForce-L1"; + break; + case 4: + matcherType = "BruteForce-Hamming"; + break; + case 5: + matcherType = "BruteForce-Hamming(2)"; + break; + } + + matcher_ptr_ = cv::DescriptorMatcher::create(matcherType); } #else @@ -118,7 +137,6 @@ ProcessorImageLandmark::ProcessorImageLandmark(const ProcessorParamsImage& _para // 2. matcher params matcher_ptr_ = std::make_shared<cv::BFMatcher>(_params.matcher.similarity_norm); - } #endif -- GitLab