In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-18 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/02 Report--
This article is about how to analyze ORB, SURF, SIFT feature point extraction methods and ICP matching methods, the editor feels very practical, so share with you to learn, I hope you can get something after reading this article, say no more, follow the editor to have a look.
When compiling visual SLAM, the book mentions ORB, SURF, SIFT extraction methods, as well as feature extraction methods brute force matching (Brute-Force Matcher) and fast nearest neighbor matching (FLANN). And 3D-3D: iterative nearest point (Iterative Closest Point,ICP) method, there are two ways to solve ICP: linear algebra (mainly SVD) and non-linear optimization.
Main.cpp#include # include "opencv2/opencv.hpp" # include "opencv2/core/core.hpp" # include "opencv2/features2d/features2d.hpp" # include "opencv2/highgui/highgui.hpp" # include # include using namespace std;using namespace cv;using namespace cv::xfeatures2d; double picture1_size_change=1;double picture2_size_change=1; bool show_picture = true Void extract_ORB2 (string picture1, string picture2) {/ /-- read the image Mat img_1 = imread (picture1, CV_LOAD_IMAGE_COLOR); Mat img_2 = imread (picture2, CV_LOAD_IMAGE_COLOR); assert (img_1.data! = nullptr & & img_2.data! = nullptr); resize (img_1, img_1, Size (), picture1_size_change, picture1_size_change) Resize (img_2, img_2, Size (), picture2_size_change, picture2_size_change); / /-initialize std::vector keypoints_1, keypoints_2; Mat descriptors_1, descriptors_2; Ptr detector = ORB::create (2000, (1.200000048F), 8100); Ptr descriptor = ORB::create (5000); Ptr matcher = DescriptorMatcher::create ("BruteForce-Hamming") / /-- first step: detect Oriented FAST corner position chrono::steady_clock::time_point T1 = chrono::steady_clock::now (); detector- > detect (img_1, keypoints_1); detector- > detect (img_2, keypoints_2); / /-- second step: calculate BRIEF descriptor descriptor- > compute (img_1, keypoints_1, descriptors_1) based on corner position Descriptor- > compute (img_2, keypoints_2, descriptors_2); chrono::steady_clock::time_point T2 = chrono::steady_clock::now (); chrono::duration time_used = chrono::duration_cast (T2-T1); / / cout
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.