Welche Art von Bildern brauchen Sie? Wenn Sie sich nicht darum kümmern, können Sie einfach einige öffentliche Computer -Vision -Datensatze wie möglich herunterladen http://lear.inrialpes.fr/~jegou/data.php#holidays Dies bietet sowohl Bilder als auch bereits berechnete Sifts aus seinen Regionen. Oder versuchen Sie beispielsweise andere Datensätze von http://www.cvpapers.com/datasets.html
Eine andere Möglichkeit besteht nur darin, viele Fotos herunterzuladen, Interessenspunkte zu erkennen und sie mit Sifts zu beschreiben. Es kann mit erledigt werden mit Opencv, Vlfeat oder andere Bibliotheken.
OpenCV -Beispiel.
#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;
}