orb

OpenCV ORB descriptor - how exactly is it stored in a set of bytes?

有些话、适合烂在心里 提交于 2019-12-02 20:34:17
I'm currently using OpenCV's ORB features extractor and I did notice the strange (at least for me) way the ORB-descriptor is stored (it is basically a BRIEF-32 with a modification that is not relevant to my question). As some of you know ORB takes the keypoints extracted using a modified FAST-9 (circle radius = 9 pixels; also stores orientation of the keypoint) and uses those with a modified BRIEF-32 descriptor to store the feature that the keypoint represents. BRIEF (ORB version) works as follows: we take a 31x31 pixels patch (represents a feature) and create a bunch of random 5x5 pixels test

ORB-SLAM2编译报错:rospack found package "ORB_SLAM2" at "/opt/ros/kinetic/share/ORB_SLAM2", but the....

风格不统一 提交于 2019-12-02 10:36:50
折腾了一中午,尝试了各种修改路径的方法,仍然是提示报错,但是路径明明是添加进去了… 报错信息: [rosbuild] Building package ORB_SLAM2 [rosbuild] Error from directory check: /opt/ros/kinetic/share/ros/core/rosbuild/bin/check_same_directories.py /opt/ros/kinetic/share/ORB_SLAM2 /home/bruce/study/slam/orb/point_map2/Examples/ROS/ORB_SLAM2 1 Traceback (most recent call last): File "/opt/ros/kinetic/share/ros/core/rosbuild/bin/check_same_directories.py", line 48, in <module> raise Exception Exception CMake Error at /opt/ros/kinetic/share/ros/core/rosbuild/private.cmake:102 (message): [rosbuild] rospack found package "ORB_SLAM2" at "/opt/ros

How to init ORB from property file?

空扰寡人 提交于 2019-12-02 02:15:36
问题 I would like to init my ORB from property file (normally I init it like this, while running my examples: ./app -ORBInitRef NameService=corbaloc::localhost:2809/NameService ) I wrote a simple code: private static String[] readConfigFile() { Properties prop = new Properties(); String arg[] = new String[1]; try { prop.load(new FileInputStream("config.properties")); } catch (IOException ex) {} arg[0] = prop.getProperty("ORBInitRef"); return arg; } and then tried to init my orb: clientsORB = org

How to init ORB from property file?

ε祈祈猫儿з 提交于 2019-12-02 02:12:38
I would like to init my ORB from property file (normally I init it like this, while running my examples: ./app -ORBInitRef NameService=corbaloc::localhost:2809/NameService ) I wrote a simple code: private static String[] readConfigFile() { Properties prop = new Properties(); String arg[] = new String[1]; try { prop.load(new FileInputStream("config.properties")); } catch (IOException ex) {} arg[0] = prop.getProperty("ORBInitRef"); return arg; } and then tried to init my orb: clientsORB = org.omg.CORBA.ORB.init(readConfigFile(), null); but there are some errors: 2012-11-01 12:15:36 com.sun.corba

Is LSH about transforming vectors to binary vectors for hamming distance?

拈花ヽ惹草 提交于 2019-12-02 00:50:48
I read some paper about LSH and I know that is used for solving the approximated k-NN problem. We can divide the algorithm in two parts: Given a vector in D dimensions (where D is big) of any value, translate it with a set of N (where N<<D ) hash functions to a binary vector in N dimensions. Using hamming distance, apply some search technique on the set of given binary codes obtained from phase 1 to find the k-NN. The keypoint is that computing the hamming distance for vectors in N dimensions is fast using XOR. Anyway, I have two questions: Point 1. is still necessary if we use a binary

Matching ORB Features with a threshold

谁都会走 提交于 2019-11-30 21:20:31
问题 My project is herbs recognition based on android. I use ORB to get keypoints, features, and matching the features. I want to use this algorithm: I use 4 reference image, and matching their features image1 to image1, 1-2, 1-3, 1-4, 2-3, 3,4. Then I store the minimum and maximum distance to database as a threshold. (minimum threshold = total minimum/6) When I recognize the new image, I compare that new minimum and maximum distance with in database. But I don't know how to do that. { for (j

BFMatcher match in OpenCV throwing error

旧巷老猫 提交于 2019-11-30 13:15:44
问题 I am using SURF descriptors for image matching. I am planning to match a given image to a database of images. import cv2 import numpy as np surf = cv2.xfeatures2d.SURF_create(400) img1 = cv2.imread('box.png',0) img2 = cv2.imread('box_in_scene.png',0) kp1,des1 = surf.detectAndCompute(img1,None) kp2,des2 = surf.detectAndCompute(img2,None) bf = cv2.BFMatcher(cv2.NORM_L1,crossCheck=True) #I am planning to add more descriptors bf.add(des1) bf.train() #This is my test descriptor bf.match(des2) The

OpenCV feature matching multiple objects

≯℡__Kan透↙ 提交于 2019-11-30 12:20:11
问题 How can I find multiple objects of one type on one image. I use ORB feature finder and brute force matcher (opencv = 3.2.0). My source code: import numpy as np import cv2 from matplotlib import pyplot as plt MIN_MATCH_COUNT = 10 img1 = cv2.imread('box.png', 0) # queryImage img2 = cv2.imread('box1.png', 0) # trainImage #img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) # Initiate ORB detector # orb = cv2.ORB_create(10000, 1.2, nlevels=9, edgeThreshold = 4) #orb = cv2.ORB_create() # find the

OpenCV feature matching multiple objects

守給你的承諾、 提交于 2019-11-30 02:30:59
How can I find multiple objects of one type on one image. I use ORB feature finder and brute force matcher (opencv = 3.2.0). My source code: import numpy as np import cv2 from matplotlib import pyplot as plt MIN_MATCH_COUNT = 10 img1 = cv2.imread('box.png', 0) # queryImage img2 = cv2.imread('box1.png', 0) # trainImage #img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) # Initiate ORB detector # orb = cv2.ORB_create(10000, 1.2, nlevels=9, edgeThreshold = 4) #orb = cv2.ORB_create() # find the keypoints and descriptors with SIFT kp1, des1 = orb.detectAndCompute(img1, None) kp2, des2 = orb

OpenCV filtering ORB matches

一笑奈何 提交于 2019-11-28 07:47:43
I am using the ORB feature detector to find matches between two images using this code: FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB); DescriptorExtractor descriptor = DescriptorExtractor.create(DescriptorExtractor.ORB);; DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING); // First photo Imgproc.cvtColor(img1, img1, Imgproc.COLOR_RGB2GRAY); Mat descriptors1 = new Mat(); MatOfKeyPoint keypoints1 = new MatOfKeyPoint(); detector.detect(img1, keypoints1); descriptor.compute(img1, keypoints1, descriptors1); // Second photo Imgproc