【发布时间】:2018-07-01 07:48:55
【问题描述】:
我刚刚发现 SIFT 写入 Octave as packed value(八度、层和比例)。
我需要解压这个值,因为我必须将 SIFT 检测器与其他描述符(ORB、BRIEF、SURF、BRISK)结合使用。 Here你可以找到类似的问题。
我已经尝试了不同的解决方案(参见下面的代码),但似乎没有一个在 python 中有效(this one 也是如此)。
有什么建议吗?
unpackOctave(keypoints[i], octave, layer, scale)
或:
unpackOctave(const KeyPoint& kpt, int& octave, int& layer, float& scale){
octave = kpt.octave & 255;
layer = (kpt.octave >> 8) & 255;
octave = octave < 128 ? octave : (-128 | octave);
scale = octave >= 0 ? 1.f/(1 << octave) : (float)(1 << -octave);
}
【问题讨论】: