surf

How to use Mikolajczyk's evaluation framework for feature detectors/descriptors?

十年热恋 提交于 2019-12-06 03:16:02
问题 I'm trying the assess the correctness of my SURF descriptor implementation with the de facto standard framework by Mikolajczyk et. al. I'm using OpenCV to detect and describe SURF features, and use the same feature positions as input to my descriptor implementation. To evaluate descriptor performance, the framework requires to evaluate detector repeatability first. Unfortunately, the repeatability test expects a list of feature positions along with ellipse parameters defining the size and

Color SURF detector

帅比萌擦擦* 提交于 2019-12-06 01:49:55
问题 SURF by default works on Gray image. I am thinking to do SURF on HSV image. My method is to separate the channels into H, S and V. And I use S and V for keypoint detection. I tried to compare the number of keypoints in SV vs RGB and in terms of channel wise, HSV gives more features. Not sure what I am doing is correct or not. Need some explanation of the possibility of applying SURF on HSV image. I have read a paper on applying SIFT on different color space but not SURF. Is there better way

Detecting outliers in SURF or SIFT algorithm with OpenCV

你说的曾经没有我的故事 提交于 2019-12-05 18:44:15
Which method is the best to compare two images and discard outliers points? In find_obj.cpp opencv example, they use FLANN, but don't discard outliers. I have seen some methods like using Kmeans or graphs. There is a fairly reliable and efficient way to both reject noisy points and determine the transformation between your points of interest. The algorithm that is usually used to reject outliers is known as RANSAC (http://en.wikipedia.org/wiki/RANSAC), and the algorithm used to determine the transformation can take several forms, but the most current state of the art is known as the five-point

Bag of Visual Words in Opencv

試著忘記壹切 提交于 2019-12-05 02:36:45
问题 I am using BOW in opencv for clustering the features of variable size. However one thing is not clear from the documentation of the opencv and also i am unable to find the reason for this question: assume: dictionary size = 100. I use surf to compute the features, and each image has variable size descriptors e.g.: 128 x 34, 128 x 63, etc. Now in BOW each of them are clustered and I get a fixed descriptor size of 128 x 100 for a image. I know 100 is the cluster center created using kmeans

OpenCV: howto use mask parameter for feature point detection (SURF)

只谈情不闲聊 提交于 2019-12-04 22:31:48
问题 I want to limit a SurfFeatureDetector to a set of regions (mask). For a test I define only a single mask: Mat srcImage; //RGB source image Mat mask = Mat::zeros(srcImage.size(), srcImage.type()); Mat roi(mask, cv::Rect(10,10,100,100)); roi = Scalar(255, 255, 255); SurfFeatureDetector detector(); std::vector<KeyPoint> keypoints; detector.detect(srcImage, keypoints, roi); // crash //detector.detect(srcImage, keypoints); // does not crash When I pass the "roi" as the mask I get this error:

Opencv 3.0 - module object has no attribute 'xfeatures2d'

五迷三道 提交于 2019-12-04 22:16:29
I have shifted from OpenCV 2.4.9 to 3.0 to make use of drawMatches and drawMatchesKnn function. I came to know that it does not come along with non-free algorithms like SIFT , SURF. So I installed opencv_contrib from https://github.com/Itseez/opencv_contrib by following steps cmake -DOPENCV_EXTRA_MODULES_PATH=/home/zealous/Downloads/opencv_contrib-master/modules /usr/local .. make -j5 make install I also cross checked in modules of opencv , xfeatures2d was there. Then when I tried to do >>> import cv2 >>> help(cv2.xfeatures2d) It gives me following error Traceback (most recent call last): File

Detect spots empty parking OPENCV

时光毁灭记忆、已成空白 提交于 2019-12-04 22:09:14
I want to apply a detector algorithm to detect empty areas of parking and I have read about SIFT and SURF, but I can't quite understand it. I have seen examples of comparison between two images, but that's not what I want. Could you explain about how to use SURF or SIFT on the issue of detecting empty spots on parking? I have also read about color histogram, can I have some documentation about it? I am working with OpenCV python 2.4.9 and 2.7 cyriel It depends on what you exactly want to achieve - if just want to find an empty spot and your camera higher than parking, it's quite possible that

Issue: Bag of Features Training SIFT or SURF for car detection within Video with OpenCV + Python

吃可爱长大的小学妹 提交于 2019-12-04 21:55:35
I am trying to dump keypoints of cars with SIFT or SURF and match these keypoints to a video in order to detect cars. Keypoints are more convenient to use instead of Haar Cascades because I would have to use a lot of images for example 5000 to train, which will take a lot of computation process. Keypoints from SURF or SIFT are scale invariant which will be almost the same in every car. The code for dumping keypoints into a txt file is: import cv2 import numpy as np import os import cPickle surf = cv2.xfeatures2d.SURF_create() descriptors = [] image = cv2.imread('1.jpg') kp, dsc = surf

Merge multiple cv::Mat?

故事扮演 提交于 2019-12-04 20:48:47
问题 Basically I have 3 mat like this: Mat descriptors1 Mat descriptors2 Mat descriptors3 Where each descriptors have been loaded like this: extractor->compute( object, kp, descriptors ); How could I join in a single Mat all the descriptors (append one mat to the other) ? Example: Mat fullDesc = descriptors1 + descriptors2 + descriptors3; 回答1: Not very effective, but short: descriptors1.push_back(descriptors2); descriptors1.push_back(descriptors3); After that descriptors1 will be a concatenation.

OpenCV on iOS: False matching with SurfFeatureDetector and FlannBasedMatcher

試著忘記壹切 提交于 2019-12-04 18:17:38
I am trying to use OpenCV's feature detection tools in order to decide whether a small sample image exists in a larger scene image or not. I used the code from here as a reference (without the homography part). UIImage *sceneImage, *objectImage1; cv::Mat sceneImageMat, objectImageMat1; cv::vector<cv::KeyPoint> sceneKeypoints, objectKeypoints1; cv::Mat sceneDescriptors, objectDescriptors1; cv::SurfFeatureDetector *surfDetector; cv::FlannBasedMatcher flannMatcher; cv::vector<cv::DMatch> matches; int minHessian; double minDistMultiplier; minHessian = 400; minDistMultiplier= 3; surfDetector = new