brisk

所属分类:matlab编程
开发工具:Visual C++
文件大小:16080KB
下载次数:34
上传日期:2013-12-08 23:04:38
上 传 者678899
说明:  brisk描述子,matlab语言,好懂易学
(brisk descriptors, matlab language, easy to understand to learn)

文件列表:
brisk (0, 2012-10-24)
brisk\brisk (0, 2011-12-11)
brisk\brisk\apple (0, 2011-09-22)
brisk\brisk\apple\bin (0, 2011-09-22)
brisk\brisk\apple\bin\demo.m (2725, 2011-09-22)
brisk\brisk\apple\lib (0, 2011-09-22)
brisk\brisk\build (0, 2011-09-22)
brisk\brisk\CMakeLists.txt (4694, 2011-12-10)
brisk\brisk\FindOpenCV.cmake (10712, 2011-09-22)
brisk\brisk\images (0, 2011-09-22)
brisk\brisk\images\img1.ppm (1536015, 2011-09-22)
brisk\brisk\images\img2.ppm (1536015, 2011-09-22)
brisk\brisk\include (0, 2011-09-22)
brisk\brisk\include\brisk (0, 2011-12-11)
brisk\brisk\include\brisk\brisk.h (11288, 2011-12-11)
brisk\brisk\include\brisk\hammingsse.hpp (5950, 2011-12-11)
brisk\brisk\LICENSE (1839, 2011-12-11)
brisk\brisk\Makefile (246, 2011-09-22)
brisk\brisk\Matlab (0, 2011-12-11)
brisk\brisk\Matlab\brisk.cpp (20149, 2011-12-11)
brisk\brisk\Matlab\brisk_interface.h (3856, 2011-12-11)
brisk\brisk\Matlab\fix_error.m (1265, 2011-09-22)
brisk\brisk\Matlab\make_mex.m (2156, 2011-12-10)
brisk\brisk\Matlab\mexopts.sh (12916, 2011-09-22)
brisk\brisk\src (0, 2011-12-11)
brisk\brisk\src\brisk.cpp (61358, 2011-12-11)
brisk\brisk\src\demo.cpp (11267, 2011-12-11)
brisk\brisk\thirdparty (0, 2011-09-22)
brisk\brisk\thirdparty\agast (0, 2011-12-11)
brisk\brisk\thirdparty\agast\CMakeLists.txt (606, 2011-09-22)
brisk\brisk\thirdparty\agast\include (0, 2011-09-22)
brisk\brisk\thirdparty\agast\include\agast (0, 2011-12-11)
brisk\brisk\thirdparty\agast\include\agast\agast5_8.h (2882, 2011-12-11)
brisk\brisk\thirdparty\agast\include\agast\agast7_12d.h (3183, 2011-12-11)
brisk\brisk\thirdparty\agast\include\agast\agast7_12s.h (3182, 2011-12-11)
brisk\brisk\thirdparty\agast\include\agast\AstDetector.h (2943, 2011-12-11)
brisk\brisk\thirdparty\agast\include\agast\cvWrapper.h (1908, 2011-12-11)
brisk\brisk\thirdparty\agast\include\agast\oast9_16.h (3370, 2011-12-11)
brisk\brisk\thirdparty\agast\LICENSE (1491, 2011-12-11)
... ...

+-----------------------------------------------------------------------+ | BRISK package: Source Code Release v0.0 | | Copyright 2011 Autonomous Systems Lab (ASL), ETH Zurich | | Stefan Leutenegger, Simon Lynen and Margarita Chli | | | | License: BSD (see license file included in this folder) | | | | This software is an implementation of [1]: | | [1] Stefan Leutenegger, Margarita Chli and Roland Siegwart, BRISK: | | Binary Robust Invariant Scalable Keypoints, in Proceedings of the | | IEEE International Conference on Computer Vision (ICCV2011). | +-----------------------------------------------------------------------+ This implementation provides a precompiled Matlab interface as well as a demo application for standard system configurations. However, you can also recompile any component, bearing in mind the dependency on OpenCV (minimum Version 2.2). For questions, email brisk@ethz.ch Running the BRISK demo ---------------------- To run the precompiled BRISK demo you first need to enter the right sub-directory (that is "brisk//bin/"): > unix32 : 32-bit Linux, compiled and tested on Ubuntu 10.04 > unix*** : ***-bit Linux, compiled and tested on Ubuntu 10.04 > win32 : 32-bit, tested on Vista and 7 In here, you can run the demo application. On Linux, you might have to install some dependencies of OpenCV (avcodec, avformat, avutil, swscale, dc1394)--or just install OpenCV. To use the Matlab interface, you need to run the "demo.m" script in "brisk//bin/" from Matlab. If you get error in concerning stdc++ on linux, run the "fix_errors.m" script from the Matlab console (inside the "brisk/Matlab/" directory). Important: you will have to restart Matlab afterwards, otherwise the mex interface will still not work. You can try the BRISK demo with different images by replacing the ones in "brisk/images/". This should run for images of different dimensions, but smaller than 16.7 Mpixels (grayscale). If the demo application does not work for your system, you might need to recompile the source code. Building the BRISK source -------------------------- Note: minimum OpenCV requirement is Version 2.2. You can get this from http://opencv.willowgarage.com/wiki/ To compile, type "make" while in the brisk root-directory (this triggers an out-of-source build using cmake). The executable to run (called "demo") is copied into "brisk//bin/". Note that for Windows or Apple OS, you need to enter the "brisk/build" directory and run "cmake .." there. If you want to make changes on the BRISK library, you can generate an eclipse project running "make cdt" in the brisk root directory. On Windows cmake was tested to generate a VisualStudio project. Building the Matlab Interface ----------------------------- In order to rebuild the Matlab mex-files, type "make_mex" in the Matlab console, while inside the "brisk/Matlab/" directory. You will have to adapt the respective path to openCV inside make_mex.m. USING THE MATLAB INTERFACE ========================== This is a MEX interface to the BRISK C++ library: it detects, extracts and matches BRISK features Implementation according to [1]. Change to the corresponding /bin directory inside Matlab (i.e. $BRISK_ROOT/yourarchitecture/bin). Run the "demo" script to check if the mex interface is working. If you get error concerning stdc++, run "fix_errors" from the Matlab console (inside the /Matlab directory). Important: you will have to restart Matlab afterwards, otherwise the mex interface will still not work. For the brisk mex function, the following calling syntax applies: varargout = brisk(subfunction, morevarargin) where subfunction is to be used in order: 'init' Initialize brisk. Optionally pass arguments to set properties (see below). Attention: this will create the pattern look-up table, so this may take some fraction of a second. Do not rerun! 'set' Set properties. The following may be set: '-threshold' FAST/AGAST detection threshold. The default value is 60. '-octaves' No. octaves for the detection. The default value is 4. '-patternScale' Scale factor for the BRISK pattern. The default value is 1.0. '-type' BRISK special type 'S', 'U', 'SU'. By default, the standard BRISK is used. See [1] for explanations on this. Attention: if the patternScale or the type is reset, the pattern will be regenerated, which is time- consuming! 'loadImage' Load an image either from Matlab workspace by passing a UINT8 Matrix as a second argument, or by specifying a path to an image, e.g.: brisk('loadImage',imread('path/to/image')); brisk('loadImage','path/to/image'); 'detect' Detect the keypoints. Optionally get the points back: brisk('detect'); keyPoints=brisk('detect'); 'describe' Get the descriptors and the corresponding keypoints [keyPoints,descriptors]=brisk('detect'); 'radiusMatch' Radius match. [indicesOfSecondKeyPoints]=brisk('radiusMatch',... firstKeypoints,secondKeyPoints); 'knnMatch' k-nearest neighbor match. [indicesOfSecondKeyPoints]=brisk('knnMatch',... firstKeypoints,secondKeyPoints,k); 'image' Returns the currently used gray-scale image. image=brisk('image'); 'terminate' Free the memory. USING THE C++ LIBRARY ===================== The respective interfaces comply with the OpenCV 2.2+ common feature interface. As observable e.g. in the demo application, you will have the following workflow representing the three stages detection, descriptor extraction and matching: // Set up the detector cv::Ptr detector; // select threshold and octaves at constructor level: detector = new cv::BriskFeatureDetector(60,4); ... // Construct the extractor. Make sure only to do this once: this will // build up the look-up tables, which is consuming a considerable amount // of time. cv::Ptr descriptorExtractor; // constructor variants for arbitrary costumization available: descriptorExtractor = new cv::BriskDescriptorExtractor(); ... // Construct the matcher cv::Ptr descriptorMatcher; descriptorMatcher = new cv::BruteForceMatcher(); ... // process an arbitrary number of images: detector->detect(grayImage1,keypoints1); descriptorExtractor->compute(imgGray1,keypoints1,descriptors1); ... detector->detect(grayImageN,keypointsN); descriptorExtractor->compute(imgGrayN,keypointsN,descriptorsN); ... descriptorMatcher->radiusMatch(descriptorsI,descriptorsJ, matches,hammingMax); // alternatively use knnMatch (or match for k:=1). ...

近期下载者

相关文件


收藏者