the function "getPointOctave" in surf.cpp is wrong (Patch #1503)
Description
the function getPointOctave(...) is used to compute the octave in which the keypoint was detected. In OpenCV 2.3.1, this function gets wrong answer.
The reason is that it starts the search from octave=1 to octave=nOctaves-1, thus it miss the first octave(octave=0). Since the layer=0 is not used to detect the keypoint, the layer search also should be from layer=1 to layer=nOctaves.
The wrong code in OpenCV 2.3.1 is:
1 for( octave = 1; octave < params.nOctaves; octave++ )
2 for( layer = 0; layer < params.nOctaveLayers; layer++ )
3 ...
And the right code should be:
1for( octave = 0; octave < params.nOctaves; octave++ )
2 for( layer = 1; layer < params.nOctaveLayers+1; layer++ )
Associated revisions
Merge pull request #1503 from ilya-lavrenov:ocl_arithm
History
Updated by Alexander Shishkov about 13 years ago
- Description changed from the function getPointOctave(...) is used to compute the octave in which the k... to the function getPointOctave(...) is used to compute the octave in which the k... More
Updated by Alexander Shishkov almost 13 years ago
- Tracker changed from Bug to Patch
- Priority changed from High to Normal
- Target version deleted ()
- Description changed from the function getPointOctave(...) is used to compute the octave in which the k... to the function getPointOctave(...) is used to compute the octave in which the k... More
Updated by Alexander Shishkov almost 13 years ago
- Priority changed from Normal to High
Updated by Alexander Shishkov almost 13 years ago
- Assignee deleted (
Maria Dimashova)
Updated by Vadim Pisarevsky almost 13 years ago
Hi! In the latest SVN version getPointOctave() has been removed; now both octave and the layer and encoded as bit-fields in KeyPoint::octave.
- Status changed from Open to Cancelled
- Assignee set to Vadim Pisarevsky
Updated by Alexander Shishkov almost 13 years ago
- Target version set to 2.4.0