Как создать базу данных дескрипторов SIFT (изображений)? Мое намерение состоит в том, чтобы внедрить контролируемый набор для обучения на Vector Vector Machine.Как создать базу данных дескрипторов SIFT
0
A
ответ
0
Какие изображения вам нужны? Если вы не заботитесь, вы можете просто загрузить некоторый набор данных общедоступного компьютерного зрения, например http://lear.inrialpes.fr/~jegou/data.php#holidays, который предлагает изображения и уже вычисленные SIFT из своих регионов. Или попробуйте другие наборы данных, например, от http://www.cvpapers.com/datasets.html
Другая возможность - это просто загрузить \ сделать много фотографий, обнаружить интересную точку и описать их с помощью SIFT. Это можно сделать с помощью OpenCV, VLFeat или других библиотек.
Примеры использования OpenCV.
#include <opencv2/opencv.hpp>
#include <opencv2/nonfree/nonfree.hpp>
#include <fstream>
void WriteSIFTs(std::vector<cv::KeyPoint> &keys, cv::Mat desc, std::ostream &out1)
{
for(int i=0; i < (int) keys.size(); i++)
{
out1 << keys[i].pt.x << " " << keys[i].pt.y << " " << keys[i].size << " " << keys[i].angle << " ";
//If you don`t need information about keypoints (position, size)
//you can comment out the string above
float* descPtr = desc.ptr<float>(i);
for (int j = 0; j < desc.cols; j++)
out1 << *descPtr++ << " ";
out1 << std::endl;
}
}
int main(int argc, const char* argv[])
{
const cv::Mat img1 = cv::imread("graf.png", 0); //Load as grayscale
cv::SiftFeatureDetector detector;
std::vector<cv::KeyPoint> keypoints;
detector.detect(img1, keypoints);
cv::SiftDescriptorExtractor extractor;
cv::Mat descriptors;
extractor.compute(img1, keypoints, descriptors);
std::ofstream file1("SIFTs1.txt");
if (file1.is_open())
WriteSIFTs(keypoints,descriptors,file1);
file1.close();
return 0;
}
Смежные вопросы
- 1. Как создать базу данных дескрипторов SIFT [с помощью Python]?
- 2. вычислительная матрица PCA для набора дескрипторов sift
- 3. Значения дескрипторов SIFT: OpenCV vs VLFeat
- 4. тип дескрипторов SIFT для открытого кода
- 5. Как создать базу данных:
- 6. Как создать базу данных?
- 7. OpenCV (C++) с использованием дескрипторов SIFT увеличивает количество обнаруженных функций?
- 8. Использование дескрипторов SIFT для сравнения подобия между двумя изображениями
- 9. Как создать простую базу данных
- 10. Как создать динамическую базу данных?
- 11. Как создать базу данных sqlite3
- 12. Как создать расширяемую базу данных?
- 13. Как создать базу данных SaaS
- 14. Как создать мою базу данных?
- 15. Как создать базу данных MySQL?
- 16. Как создать базу данных MySQL
- 17. Как создать базу данных платежей?
- 18. Как создать базу данных Firebase
- 19. Как создать основную базу данных?
- 20. Как создать базу данных PhoneGap
- 21. Как создать базу данных физики?
- 22. Как создать базу данных `phpmyadmin`
- 23. Как создать базу данных SQLite?
- 24. Как создать базу данных xml?
- 25. Как создать базу данных пользователей?
- 26. Как создать базу данных открывания?
- 27. Как создать базу данных парковки?
- 28. postgreSQL.app: создать базу данных
- 29. Как создать ключевые точки для вычисления SIFT?
- 30. Сообщество.CsharpSqlLite создать базу данных?
Да, я хочу создать свой собственный набор данных. Поэтому я взял много фотографий и хочу извлечь их SIFT-дескрипторы, а затем смонтировал набор данных этих векторов. Я использую openCV, но я полностью новичок в этом, так что мне нужно делать? (Спасибо) – user2967127
Вы можете использовать код, который я добавил. –