Я прочитал много статей о реализации мешка слов после принятия просеивающих функций изображения, но я все еще смущен, что делать дальше. Что я конкретно делаю?Как использовать функции 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);
для шага # 1, введите ключевые точки SIFT, которые я смог получить из числа изображений? – lionking
@ lionking да вы можете использовать SIFT .. Мой совет заключается в том, что вы строите весь конвейер, а затем экспериментируете с различными экстракторами функций. – Mido
Для # 2 вы можете использовать алгоритмы, такие как кластеризация k-классов, для формирования кластеров обучающих функций. – Mido