Создание SIFT с нуля с использованием OpenCV: предложения по обнаружению экстремальных масштабных пространств

У меня проблемы. Я пытаюсь выполнить обнаружение экстремумов на серии DoG, которые являются результатом создания шкалы 4 октав и 5 шкал на октаву. Что мне нужно сделать, это: Шкала обнаружения экстремумов

Таким образом, мне нужно взять центральный пиксель скользящего окна на среднем изображении и сравнить его значение со своими соседями, а также со скользящими окнами 9x9 на изображении выше и ниже его в пространстве шкалы.

Я начал с создания скользящего окна 9x9 и создания серии вложенных циклов for для итерации октав и изображений DoG. Тем не менее, часть, на которой я застрял, состоит в том, как сравнить соседей в скользящем окне и как выделить центральный пиксель в скользящем окне среднего изображения. Это мой код до сих пор:

void SIFT::findExtrema()
{
     // Define Sliding Window Parameters
     int win_row, win_col = 9;     // Size of window is 60x60
     int stepSize = 1;             // Number of pixels to move the window across the image.
     int array_DoG_rows = sizeof(array_DoG)/sizeof(array_DoG[0]);          // Returns number of rows for array_DoG
     int array_DoG_cols = sizeof(array_DoG[0])/sizeof(array_DoG[0][0]);         // Returns columns for array_DoG
     // Scan images and find maxima and minima.
     for(int i=0; i < array_DoG_rows; i++)   // Iterate octaves
     {   
          for(int j=1; j < array_DoG_cols; j++)   // Interate scales. Start at second image in scale.
          {   
               //Iterate through image 1
               for(int row=0; row <= array_DoG[i][j].rows - win_row; row+=stepSize)       
               {   
                    for(int col=0; col <= array_DoG[i][j].cols - win_col; col+=stepSize)
                    {   

                    }   
               }   
          }   
     }   
}

Я искал несколько онлайн-форумов и Stackru, в том числе здесь и здесь. Мой инстинкт состоит в том, чтобы реализовать серию циклов for для каждого изображения. Однако это кажется пустой тратой времени и ресурсов, поскольку изображение, находящееся глубже внутри гнезда, будет перемещать скользящее окно по всему изображению до того, как первое изображение настроит свое скользящее окно.

0 ответов

Другие вопросы по тегам