Fix KAZE/AKAZE descriptors to use angle instead radians.

This commit is contained in:
Balint Cristian 2015-12-08 22:04:41 +02:00
parent a15707bc57
commit 0087c57e0d
2 changed files with 9 additions and 8 deletions

View File

@ -1000,7 +1000,7 @@ void MSURF_Descriptor_64_Invoker::Get_MSURF_Descriptor_64(const KeyPoint& kpt, f
// Get the information from the keypoint
ratio = (float)(1 << kpt.octave);
scale = fRound(0.5f*kpt.size / ratio);
angle = kpt.angle;
angle = (kpt.angle * static_cast<float>(CV_PI)) / 180.f;
level = kpt.class_id;
yf = kpt.pt.y / ratio;
xf = kpt.pt.x / ratio;
@ -1406,8 +1406,9 @@ void MLDB_Full_Descriptor_Invoker::Get_MLDB_Full_Descriptor(const KeyPoint& kpt,
float scale = (float)fRound(0.5f*kpt.size / ratio);
float xf = kpt.pt.x / ratio;
float yf = kpt.pt.y / ratio;
float co = cos(kpt.angle);
float si = sin(kpt.angle);
float angle = (kpt.angle * static_cast<float>(CV_PI)) / 180.f;
float co = cos(angle);
float si = sin(angle);
int pattern_size = options_->descriptor_pattern_size;
int dpos = 0;
@ -1441,7 +1442,7 @@ void MLDB_Descriptor_Subset_Invoker::Get_MLDB_Descriptor_Subset(const KeyPoint&
// Get the information from the keypoint
float ratio = (float)(1 << kpt.octave);
int scale = fRound(0.5f*kpt.size / ratio);
float angle = kpt.angle;
float angle = (kpt.angle * static_cast<float>(CV_PI)) / 180.f;
int level = kpt.class_id;
float yf = kpt.pt.y / ratio;
float xf = kpt.pt.x / ratio;

View File

@ -805,7 +805,7 @@ void KAZE_Descriptor_Invoker::Get_KAZE_Descriptor_64(const KeyPoint &kpt, float
yf = kpt.pt.y;
xf = kpt.pt.x;
scale = fRound(kpt.size / 2.0f);
angle = kpt.angle;
angle = (kpt.angle * static_cast<float>(CV_PI)) / 180.f;
level = kpt.class_id;
co = cos(angle);
si = sin(angle);
@ -1088,7 +1088,7 @@ void KAZE_Descriptor_Invoker::Get_KAZE_Descriptor_128(const KeyPoint &kpt, float
yf = kpt.pt.y;
xf = kpt.pt.x;
scale = fRound(kpt.size / 2.0f);
angle = kpt.angle;
angle = (kpt.angle * static_cast<float>(CV_PI)) / 180.f;
level = kpt.class_id;
co = cos(angle);
si = sin(angle);