sift

Implementing SIFT in Java

百般思念 提交于 2019-11-28 19:02:08
So I'm working on a simple Java app that allows a user to input an image as a query and have the app compare it against a database of images (which is basically no more than a directory of different images). I'm basically investigating several image similarity measurement techniques to find out which ones are appropriate for comparing pictures of cars. I've been doing some reading and apart from FFT/SSIM, I've read that the SIFT algorithm can yield very good results. However, as someone with only about a year's worth of basic Java experience, I'm honestly not sure if I'm a good enough

What are keypoints in image processing?

天大地大妈咪最大 提交于 2019-11-28 13:57:49
问题 When using OpenCV for example, algorithms like SIFT or SURF are often used to detect keypoints. My question is what actually are these keypoints? I understand that they are some kind of "points of interest" in an image. I also know that they are scale invariant and are circular. Also, I found out that they have orientation but I couldn't understand what this actually is. Is it an angle but between the radius and something? Can you give some explanation? I think I need what I need first is

euclidean distance in sift

依然范特西╮ 提交于 2019-11-28 07:06:38
I was trying to implement SIFT for my project and i have got the keypoints. I tried taking the euclidean distance of each keypoint of an image with all the keypoints of the same image but scaled down. It so happens that the distance of 1 keypoint of the query image with rest of the keypoints in the database image has kind of very similar values. How do i select the nearest neighbor and how can i be sure that this is the correct match. Euclidean distance was calculated as ,for i=1 to 128 sqrt[(pi-qi)^2] for p = 1 to number of keypoints in the database. any idea on how to proceed will be very

What are keypoints in image processing?

一笑奈何 提交于 2019-11-28 03:01:40
When using OpenCV for example, algorithms like SIFT or SURF are often used to detect keypoints. My question is what actually are these keypoints? I understand that they are some kind of "points of interest" in an image. I also know that they are scale invariant and are circular. Also, I found out that they have orientation but I couldn't understand what this actually is. Is it an angle but between the radius and something? Can you give some explanation? I think I need what I need first is something simpler and after that it will be easier to understand the papers. Those are some very good

opencv FLANN with ORB descriptors?

我只是一个虾纸丫 提交于 2019-11-27 15:54:42
问题 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

Using SIFT for Augmented Reality

荒凉一梦 提交于 2019-11-27 15:24:24
问题 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. 回答1: In my opinion, trying to implement SIFT for a

AttributeError: module 'cv2' has no attribute 'SIFT'

*爱你&永不变心* 提交于 2019-11-27 12:43:58
原因:opencv将SIFT等算法整合到xfeatures2d集合里面了。 将siftDetector=cv2.SIFT() 变更后为 siftDetector= cv2.xfeatures2d.SIFT_create() 即可正常使用SIFT算法。 import cv2 import numpy as np img = cv2 . imread ( 'C:/Users/www12/Desktop/Photo/test_1.jpg' ) gray = cv2 . cvtColor ( img , cv2 . COLOR_BGR2GRAY ) sift = cv2 . xfeatures2d . SIFT_create ( ) kp = sift . detect ( gray , None ) img = cv2 . drawKeypoints ( gray , kp , img ) cv2 . imshow ( 'img' , cv2 . resize ( img , ( 800 , 600 ) ) ) cv2 . waitKey ( 0 ) cv2 . destroyAllWindows ( ) 来源: CSDN 作者: HUN ysy 链接: https://blog.csdn.net/weixin_43772533/article/details/103242930

Sift implementation with OpenCV 2.2

最后都变了- 提交于 2019-11-27 02:54:21
Does someone know the link of example of SIFT implementation with OpenCV 2.2. regards, Below is a minimal example: #include <opencv/cv.h> #include <opencv/highgui.h> int main(int argc, const char* argv[]) { const cv::Mat input = cv::imread("input.jpg", 0); //Load as grayscale cv::SiftFeatureDetector detector; std::vector<cv::KeyPoint> keypoints; detector.detect(input, keypoints); // Add results to image and save. cv::Mat output; cv::drawKeypoints(input, keypoints, output); cv::imwrite("sift_result.jpg", output); return 0; } Tested on OpenCV 2.3 You can obtain the SIFT detector and SIFT-based

How to use SIFT algorithm to compute how similar two images are?

不打扰是莪最后的温柔 提交于 2019-11-27 02:43:51
I have used the SIFT implementation of Andrea Vedaldi , to calculate the sift descriptors of two similar images (the second image is actually a zoomed in picture of the same object from a different angle). Now I am not able to figure out how to compare the descriptors to tell how similar the images are ? I know that this question is not answerable unless you have actually played with these sort of things before, but I thought that somebody who has done this before might know this , so I posted the question. the little I did to generate the descriptors: >> i=imread('p1.jpg'); >> j=imread('p2

euclidean distance in sift

落爺英雄遲暮 提交于 2019-11-27 01:43:16
问题 I was trying to implement SIFT for my project and i have got the keypoints. I tried taking the euclidean distance of each keypoint of an image with all the keypoints of the same image but scaled down. It so happens that the distance of 1 keypoint of the query image with rest of the keypoints in the database image has kind of very similar values. How do i select the nearest neighbor and how can i be sure that this is the correct match. Euclidean distance was calculated as ,for i=1 to 128 sqrt[