2015-06-19 7 views
3

Я прочитал много статей о реализации мешка слов после принятия просеивающих функций изображения, но я все еще смущен, что делать дальше. Что я конкретно делаю?Как использовать функции SIFT для мешка слов в opencv?

Благодарим вас за руководство.

Это код, который у меня есть до сих пор.

cv::Mat mat_img = cropped.clone(); 
Mat grayForML; 
cvtColor(mat_img, grayForML, CV_BGR2GRAY); 
IplImage grayImageForML = grayForML.operator IplImage(); 


//create another copy of iplGray 
IplImage *input = cvCloneImage(&grayImageForML); 
Mat matInput = cvarrToMat(input); 
// Mat matInput = copy_gray.clone(); 
cv::SiftFeatureDetector detector; 
std::vector<cv::KeyPoint> keyPoints; 
detector.detect(input, keyPoints); 
//add results to image and save. 
cv::Mat output; 
cv::drawKeypoints(input, keyPoints, output); //SIFT OUTPUT RESULT 


//resize and display 
cv::Mat output_reduced; 
cv::resize(output, output_reduced, cv::Size2i(output.cols/2, output.rows/2)); 


imshow("SIFT result", output_reduced); 

ответ

3

физкультура мешок слов системы выглядит следующим образом:

  1. Compute функции для каждого изображения обучающего набора
  2. кластера те особенности
  3. Этикетка каждого кластера с изображениями, которые имеют функции в этом кластере

На этом этапе обучение проводится, и вы можете начать с testi нг следующим образом:

  1. Compute особенность тестового изображения
  2. Для каждой функции, найти ближайший кластер
  3. Добавить галочку для каждого обучающего изображения, которые принадлежат к этой группе
  4. Повторите для всех функций испытательное изображения
  5. изображения, которое имеет наибольшее количество клещей лучший матч, и изображение со вторым наибольшим количеством тиков является вторым лучшим матчем и так далее

Как вы можете заметить, нет ограничений на использование SIFT. Вы можете попробовать различные экстракторы и дескрипторы.

+0

для шага # 1, введите ключевые точки SIFT, которые я смог получить из числа изображений? – lionking

+0

@ lionking да вы можете использовать SIFT .. Мой совет заключается в том, что вы строите весь конвейер, а затем экспериментируете с различными экстракторами функций. – Mido

+0

Для # 2 вы можете использовать алгоритмы, такие как кластеризация k-классов, для формирования кластеров обучающих функций. – Mido

 Смежные вопросы

  • Нет связанных вопросов^_^