ما نوع الصور التي تحتاجها؟ إذا كنت لا تهتم ، يمكنك فقط تنزيل مجموعة بيانات رؤية الكمبيوتر العامة مثل http://lear.inrialpes.fr/~jegou/data.php#holidays الذي يقدم كل من الصور والخفيات المحسوبة بالفعل من مناطقها. أو جرب مجموعات البيانات الأخرى ، على سبيل المثال ، من http://www.cvpapers.com/datasets.html
الاحتمالات الأخرى هي فقط تنزيل صنع الكثير من الصور ، واكتشاف نقطة الاهتمام ووصفها بالنقاشات. يمكن القيام به 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;
}