Я использую просеять алгоритм в OpenCV код, чтобы получить дескрипторы и ключевые точки из images.My кодаЗначение Strange Octave в алгоритме SIFT?
Ptr<IplImage> image;
vector<KeyPoint> keypoints;
OutputArray des;
Feature2D *descriptor_type = new SIFT()
Mat image_mat(image);
(*descriptor_type)(image_mat,noArray(),keypoints,des,false);
Здесь я могу получить ключевых точек изображения в векторном < Keypoint> .После этого я хочу, чтобы получить Octave для каждого KeyPoint для более подробной информации. Но когда я нажимаю каждое значение октавы в ключевой точке для одного изображения, кажется странным, что я хочу подтвердить, правильны ли они.
for(int i=0;i<keypoints.size();i++)
{
cout<< (keypoints[i].octave) <<endl;
}
9765375
9765375
2621951
8323583
13763071
6488575
12845567
721407
3604991
12321279
9568767
7406079
8585727
4653567
7799295
7799295
5112319
10486271
9961983
6226431
1245951
, и если я сменил алгоритм SIFT на алгоритм SURF, все будет хорошо и кажется правильным.
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
Так что я хочу спросить, правильно ли вычисляется значение Octave в алгоритме SIFT в opencv?
http://code.opencv.org/issues/2987 – Amro