2013-11-08 2 views

ответ

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; 
    } 
+0

Да, я хочу создать свой собственный набор данных. Поэтому я взял много фотографий и хочу извлечь их SIFT-дескрипторы, а затем смонтировал набор данных этих векторов. Я использую openCV, но я полностью новичок в этом, так что мне нужно делать? (Спасибо) – user2967127

+0

Вы можете использовать код, который я добавил. –

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