sift

OpenCV中特征检测和特征匹配方法

孤者浪人 提交于 2019-11-30 04:01:41
一幅图像中总存在着其独特的像素点,这些点我们可以认为就是这幅图像的特征,成为特征点。计算机视觉领域中的很重要的图像特征匹配就是一特征点为基础而进行的,所以,如何定义和找出一幅图像中的特征点就非常重要。这篇文章我总结了视觉领域最常用的几种特征点以及特征匹配的方法。 在计算机视觉领域,兴趣点(也称关键点或特征点)的概念已经得到了广泛的应用, 包括目标识别、 图像配准、 视觉跟踪、 三维重建等。 这个概念的原理是, 从图像中选取某些特征点并对图像进行局部分析,而非观察整幅图像。 只要图像中有足够多可检测的兴趣点,并且这些兴趣点各不相同且特征稳定, 能被精确地定位,上述方法就十分有效。 以下是实验用的图像:第一幅是手机抓拍的风景图,第二幅是遥感图像。 1.SURF 特征检测的视觉不变性是一个非常重要的概念。 但是要解决尺度不变性问题,难度相当大。 为解决这一问题,计算机视觉界引入了尺度不变特征的概念。 它的理念是, 不仅在任何尺度下拍摄的物体都能检测到一致的关键点,而且每个被检测的特征点都对应一个尺度因子。 理想情况下,对于两幅图像中不同尺度的的同一个物体点, 计算得到的两个尺度因子之间的比率应该等于图像尺度的比率。近几年, 人们提出了多种尺度不变特征,本节介绍其中的一种:SURF特征。 SURF全称为“加速稳健特征”(Speeded Up Robust Feature),我们将会看到

How do I use SIFT in OpenCV 3.0 with c++?

荒凉一梦 提交于 2019-11-30 00:38:55
I have OpenCV 3.0, and I have compiled & installed it with the opencv_contrib module so that's not a problem. Unfortunately the examples from previous versions do not work with the current one, and so although this question has already been asked more than once I would like a more current example that I can actually work with. Even the official examples don't work in this version (feature detection works but not other feature examples) and they use SURF anyway. So, how do I use OpenCV SIFT on C++? I want to grab the keypoints in two images and match them, similar to this example , but even

OpenCV feature matching for multiple images

女生的网名这么多〃 提交于 2019-11-29 22:41:31
How can I optimise the SIFT feature matching for many pictures using FLANN? I have a working example taken from the Python OpenCV docs. However this is comparing one image with another and it's slow. I need it to search for features matching in a series of images (a few thousands) and I need it to be faster. My current idea: Run through all the images and save the features. How? Compare an image from a camera with this above base, and find the correct one. How? Give me the result, matching image or something. http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_feature_homography/py

How to use SIFT/SURF as features for a machine learning algorithm?

筅森魡賤 提交于 2019-11-29 09:28:36
问题 Im working on an automatic image annotation problem in which im trying to associate tags with images. For that im trying for SIFT features for learning. But the problem is all the SIFT features are a set of keypoints, each of which have a 2-D array, and the number of keypoints are also huge.How many and how do I give them for my learning algorithm which typically accepts only one-d features? 回答1: You can represent single SIFT as "visual word" which is one number and use it as SVM input, I

Training of SVM classifier using SIFT features

痴心易碎 提交于 2019-11-29 08:10:18
please i like to classify a set of image in 4 class with SIFT DESCRIPTOR and SVM. Now, using SIFT extractor I get keypoints of different sizes exemple img1 have 100 keypoints img2 have 55 keypoints.... how build histograms that give fixed size vectors with matlab In this case, perhaps dense sift is a good choice. There are two main stages: Stage 1 : Creating a codebook. Divide the input image into a set of sub-images. Apply sift on each sub-image. Each key point will have 128 dimensional feature vector. Encode these vectors to create a codebook by simply applying k-means clustering with a

opencv FLANN with ORB descriptors?

时光怂恿深爱的人放手 提交于 2019-11-29 01:25:55
I am trying to use FLANN with ORB descriptors, but opencv crashes with this simple code: vector<vector<KeyPoint> > dbKeypoints; vector<Mat> dbDescriptors; vector<Mat> objects; /* load Descriptors from images (with OrbDescriptorExtractor()) */ FlannBasedMatcher matcher; matcher.add(dbDescriptors); matcher.train() //> Crash! If I use SurfDescriptorExtractor() it works well. How can I solve this? OpenCV says: OpenCV Error: Unsupported format or combination of formats (type=0 ) in unknown function, file D:\Value\Personal\Parthenope\OpenCV\modules\flann\sr c\miniflann.cpp, line 299 Flann needs the

Using SIFT for Augmented Reality

笑着哭i 提交于 2019-11-29 00:39:40
I've come across MANY AR libraries/SDKs/APIs, all of them are marker-based, until I found this video , from the description and the comments, it looks like he's using SIFT to detect the object and follow it around. I need to do that for Android, so I'm gonna need a full implementation of SIFT in pure Java. I'm willing to do that but I need to know how SIFT is used for augmented reality first. I could make use of any information you give. In my opinion, trying to implement SIFT for a portable device is madness. SIFT is an image feature extraction algorithm, which includes complex math and

OpenCV - Surf Algorithm - Giving lots of false positives

╄→尐↘猪︶ㄣ 提交于 2019-11-28 20:58:39
I am learning OpenCV and have started exploring the SURF Algorithm for image matching. I have created a sample image library by modifying the default images available with Microsoft Windows 7. Each image has a rotated, scaled, blurred and skewed version in the same folder. My code for finding out matching images is as shown below. As can be seen in the code, the distance is measured by the line dis/objectDescriptors->total and further similarity is calculated by 100 - (dis/objectDescriptors->total) *100 . Unfortunately, this is giving me some weird false positives. For example, it matches the

Trying to match two images using sift in OpenCv, but too many matches

99封情书 提交于 2019-11-28 20:54:19
I am trying to implement a program which will input two images one is an image of a box alone and one which includes the box in the scene. Basically, the program is supposed to find keypoints in these two images and will show the images with keypoints matched. That is in the end I expect to see an appended image of two input images together with their matched keypoints connected. My code is as follows: #include <opencv2\opencv.hpp> #include <iostream> int main(int argc, const char* argv[]) { cv::Mat input1 = cv::imread("input.jpg", 1); //Load as grayscale //cv::cvtColor(input1,input1,CV

OpenCV feature matching for multiple images

懵懂的女人 提交于 2019-11-28 19:25:09
问题 How can I optimise the SIFT feature matching for many pictures using FLANN? I have a working example taken from the Python OpenCV docs. However this is comparing one image with another and it's slow. I need it to search for features matching in a series of images (a few thousands) and I need it to be faster. My current idea: Run through all the images and save the features. How? Compare an image from a camera with this above base, and find the correct one. How? Give me the result, matching