Sift Extraction - opencv

柔情痞子 提交于 2019-12-10 02:37:19

问题


I'm trying to get started working with sift feature extraction using (C++) OpenCv. I need to extract features using SIFT, match them between the original image (e.g. a book) and a scene, and after that calculate the camera pose.

So far I have found this algorithm using SURF. Does anyone know a base code from which I can get started, or maybe a way to convert the algorithm in the link from SURF to SIFT?

Thanks in advance.

EDIT: Ok, I worked out a solution for the sift problem. Now I'm trying to figure the camera pose. I'm trying to use: solvePnP, can anyone help me with an example?


回答1:


Check out the feature2d tutorial section of the new OpenCV docs website. There tutorials with code showing:

  1. Feature detection with e.g. SURF
  2. Feature Description
  3. Feature Matching



回答2:


If you have managed to find matches between the image and the scene, then I suggest you apply cv::findHomography(). It will calculate the homography matrix using 4 matches as input.

You can convert to camera pose from the homography matrix directly.




回答3:


For using SIFT instead of SURF, I changed SurfFeatureDetector to SiftFeatureDetector and SurfDescriptorExtractor to SiftDescriptorExtractor. For some images, I found that the combination SURF detector <--> SIFT descriptor yields relatively accurate results, but you should experiment with other combinations (FAST detector - FREAK descriptor or ORB detector - BRISK descriptor), depending on your requirements.

Please follow this tutorial for solving the homography part of your question: Feature Matching and Homography

Also, maybe this will help: Pose Estimation



来源:https://stackoverflow.com/questions/11378203/sift-extraction-opencv

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!