From: <hug...@li...> - 2010-05-24 17:05:14
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/0a14febcefc0 changeset: 4048:0a14febcefc0 user: Antoine date: Mon May 24 17:51:20 2010 +0200 description: Remove all SURF related parts in libpanomatic code. Modify CMakeLists.txt so that panomatic is now compiled with hugin by default. WARNING: this version has an execution error. details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/d19c70145fb1 changeset: 4049:d19c70145fb1 user: Antoine date: Mon May 24 19:03:31 2010 +0200 description: All Surf related parts are REMOVED from Panomatic's code. Bug to fix : panomatic segfaults at Vigra's RGB loading. diffstat: src/CMakeLists.txt | 3 +- src/libpanomatic/CMakeLists.txt | 16 +----------- src/libpanomatic/localfeatures/CMakeLists.txt | 7 +---- src/libpanomatic/panomatic/PanoDetector.cpp | 10 +------ src/libpanomatic/panomatic/PanoDetector.h | 10 -------- src/libpanomatic/panomatic/PanoDetectorLogic.cpp | 29 ++--------------------- src/libpanomatic/panomatic/main.cpp | 25 +------------------- 7 files changed, 12 insertions(+), 88 deletions(-) diffs (280 lines): diff -r b5162874ef3e -r d19c70145fb1 src/CMakeLists.txt --- a/src/CMakeLists.txt Mon May 24 15:52:32 2010 +0200 +++ b/src/CMakeLists.txt Mon May 24 19:03:31 2010 +0200 @@ -32,7 +32,8 @@ add_subdirectory(tools) add_subdirectory(matchpoint) add_subdirectory(deghosting) -add_subdirectory(lens_calibrate) +add_subdirectory(lens_calibrate) +add_subdirectory(libpanomatic) # build vips stuff, only if vips was found # not ready for the general public yet diff -r b5162874ef3e -r d19c70145fb1 src/libpanomatic/CMakeLists.txt --- a/src/libpanomatic/CMakeLists.txt Mon May 24 15:52:32 2010 +0200 +++ b/src/libpanomatic/CMakeLists.txt Mon May 24 19:03:31 2010 +0200 @@ -13,15 +13,9 @@ # set include path for internal libraries before using finding and initializing # external dependencies. This makes sure that "our" include paths are specified # before any system includes +include_directories( ${CMAKE_SOURCE_DIR}/ ) -#include_directories( ${CMAKE_BINARY_DIR}/liblocalfeature ) -#include_directories( ${CMAKE_SOURCE_DIR}/keypoints ) -#include_directories( ${CMAKE_SOURCE_DIR}/panomatic ) -include_directories( ${CMAKE_SOURCE_DIR}/ ) -#include_directories( ${CMAKE_SOURCE_DIR}/src/foreign/vigra ) -#include_directories( ${CMAKE_SOURCE_DIR}/src/celeste ) - -set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules) +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/src/libpanomatic/CMakeModules) IF (UNIX) FIND_PACKAGE(PkgConfig) @@ -50,12 +44,6 @@ ENDIF(BOOST_PYTHON_FOUND) INCLUDE_DIRECTORIES(.) -option(ENABLE_SURF "Enable patented SURF descriptor") -if (ENABLE_SURF) - MESSAGE("SURF enabled") - ADD_DEFINITIONS(-DSURF_ENABLED) -endif (ENABLE_SURF) - SET(BINDIR bin CACHE STRING "Destination for binaries") SET(LIBDIR lib CACHE STRING "Destination for libraries") SET(INCDIR include CACHE STRING "Destination for include files") diff -r b5162874ef3e -r d19c70145fb1 src/libpanomatic/localfeatures/CMakeLists.txt --- a/src/libpanomatic/localfeatures/CMakeLists.txt Mon May 24 15:52:32 2010 +0200 +++ b/src/libpanomatic/localfeatures/CMakeLists.txt Mon May 24 19:03:31 2010 +0200 @@ -1,9 +1,4 @@ -if (ENABLE_SURF) - set(SURF_SRC SurfKeyPointDescriptor.cpp) - set(SURF_HEADER SurfKeyPointDescriptor.h) -endif (ENABLE_SURF) - - # the liblocalfeature library +# the liblocalfeature library set (LF_SRC RansacFiltering.cpp Homography.cpp Image.cpp ${SURF_SRC} CircularKeyPointDescriptor.cpp KeyPointDetector.cpp KeyPointIO.cpp MathStuff.cpp) diff -r b5162874ef3e -r d19c70145fb1 src/libpanomatic/panomatic/PanoDetector.cpp --- a/src/libpanomatic/panomatic/PanoDetector.cpp Mon May 24 15:52:32 2010 +0200 +++ b/src/libpanomatic/panomatic/PanoDetector.cpp Mon May 24 19:03:31 2010 +0200 @@ -17,9 +17,8 @@ using namespace std; using namespace ZThread; -PanoDetector::PanoDetector() : _loadKeypoints(false), _extendedSurf(true), _outputFile("default0.oto"), +PanoDetector::PanoDetector() : _loadKeypoints(false), _outputFile("default0.oto"), _gradDescriptor(false), - _surfScoreThreshold(1000), _sieve1Width(10), _sieve1Height(10), _sieve1Size(10), _kdTreeSearchSteps(40), _kdTreeSecondDistance(0.15), _sieve2Width(5), _sieve2Height(5), _sieve2Size(1), _test(false), _cores(utils::getCPUCount()), _ransacIters(1000), _ransacDistanceThres(25), @@ -60,7 +59,6 @@ void PanoDetector::printDetails() { //cout << "\tNumber of keys : " << _numKeys << endl; - //cout << "\tExtended SURF : " << (_extendedSurf ? "yes":"no") << endl; cout << "Output file : " << _outputFile << endl; cout << "Number of CPU : " << _cores << endl << endl; if (_loadKeypoints) { @@ -70,11 +68,7 @@ cout << " Downscale to half-size : " << (_downscale?"yes":"no") << endl; if (_gradDescriptor) { cout << "Gradient based description" << endl; - } else { - cout << "SURF Options" << endl; - cout << " Extended : " << (_extendedSurf?"yes":"no") << endl; - } - cout << " Score threshold : " << _surfScoreThreshold << endl; + } cout << "Sieve 1 Options" << endl; cout << " Width : " << _sieve1Width << endl; cout << " Height : " << _sieve1Height << endl; diff -r b5162874ef3e -r d19c70145fb1 src/libpanomatic/panomatic/PanoDetector.h --- a/src/libpanomatic/panomatic/PanoDetector.h Mon May 24 15:52:32 2010 +0200 +++ b/src/libpanomatic/panomatic/PanoDetector.h Mon May 24 19:03:31 2010 +0200 @@ -32,7 +32,6 @@ #include <localfeatures/KeyPoint.h> #include <localfeatures/KeyPointDetector.h> -#include <localfeatures/SurfKeyPointDescriptor.h> class PanoDetector { @@ -43,7 +42,6 @@ typedef boost::shared_ptr<KPKDTree > KPKDTreePtr; typedef lfeat::KeyPointDetector KeyPointDetector; - typedef lfeat::SurfKeyPointDescriptor KeyPointDescriptor; PanoDetector(); @@ -58,12 +56,6 @@ inline bool getGradientDescriptor() const { return _gradDescriptor; } inline void setLoadKeypoints(bool loadKeypoints) { _loadKeypoints = loadKeypoints; } inline bool getLoadKeypoints() const { return _loadKeypoints; } - - inline void setSurfExtended(bool iExtended) { _extendedSurf = iExtended; } - inline void setSurfScoreThreshold(double iScore) { _surfScoreThreshold = iScore; } - - inline bool getSurfExtended() const { return _extendedSurf; } - inline double getSurfScoreThreshold() const { return _surfScoreThreshold; } inline void setSieve1Width(int iWidth) { _sieve1Width = iWidth; } inline void setSieve1Height(int iHeight) { _sieve1Height = iHeight; } @@ -117,8 +109,6 @@ bool _loadKeypoints; // setup values - double _surfScoreThreshold; - bool _extendedSurf; bool _gradDescriptor; int _sieve1Width; diff -r b5162874ef3e -r d19c70145fb1 src/libpanomatic/panomatic/PanoDetectorLogic.cpp --- a/src/libpanomatic/panomatic/PanoDetectorLogic.cpp Mon May 24 15:52:32 2010 +0200 +++ b/src/libpanomatic/panomatic/PanoDetectorLogic.cpp Mon May 24 19:03:31 2010 +0200 @@ -30,9 +30,6 @@ #include <localfeatures/PointMatch.h> #include <localfeatures/RansacFiltering.h> #include <localfeatures/KeyPointIO.h> -#if SURF_ENABLED -#include <localfeatures/SurfKeyPointDescriptor.h> -#endif #include <localfeatures/CircularKeyPointDescriptor.h> #include "KDTree.h" @@ -154,9 +151,10 @@ } else { - TRACE_IMG("Load RGB..."); + TRACE_IMG("Load RGB..."); + //open the image in RGB - vigra::DRGBImage aImageRGB(aImageInfo.width(), aImageInfo.height()); + vigra::DRGBImage aImageRGB(aImageInfo.width(), aImageInfo.height()); // TODO: C'EST LA Qu'EST LA SEG FAULT if(aImageInfo.numExtraBands() == 1) { @@ -197,14 +195,12 @@ vigra::DImage::Accessor()); } } - // store info ioImgInfo._origWidth = aImageInfo.width(); ioImgInfo._origHeight = aImageInfo.height(); ioImgInfo._detectWidth = aNewImgWidth; ioImgInfo._detectHeight = aNewImgHeight; - TRACE_IMG("Build integral image..."); // create integral image ioImgInfo._ii.init(aImageDouble.begin(), aNewImgWidth, aNewImgHeight); @@ -226,7 +222,6 @@ // setup the detector KeyPointDetector aKP; - aKP.setScoreThreshold(iPanoDetector.getSurfScoreThreshold()); // detect the keypoints KeyPointVectInsertor aInsertor(ioImgInfo._kp); @@ -269,10 +264,6 @@ TRACE_IMG("Make keypoint descriptors..."); // build a keypoint descriptor - -#if SURF_ENABLED - if (iPanoDetector.getGradientDescriptor()) { -#endif CircularKeyPointDescriptor aKPD(ioImgInfo._ii); BOOST_FOREACH(KeyPointPtr& aK, ioImgInfo._kp) { @@ -281,20 +272,6 @@ } // store the descriptor length ioImgInfo._descLength = aKPD.getDescriptorLength(); -#if SURF_ENABLED - } else { - SurfKeyPointDescriptor aKPD(ioImgInfo._ii, iPanoDetector.getSurfExtended()); - BOOST_FOREACH(KeyPointPtr& aK, ioImgInfo._kp) - { - aKPD.assignOrientation(*aK); - aKPD.makeDescriptor(*aK); - } - // store the descriptor length - ioImgInfo._descLength = aKPD.getDescriptorLength(); - } -#endif - - return true; } diff -r b5162874ef3e -r d19c70145fb1 src/libpanomatic/panomatic/main.cpp --- a/src/libpanomatic/panomatic/main.cpp Mon May 24 15:52:32 2010 +0200 +++ b/src/libpanomatic/panomatic/main.cpp Mon May 24 19:03:31 2010 +0200 @@ -92,13 +92,8 @@ MyOutput my; cmd.setOutput(&my); -#ifdef SURF_ENABLED - SwitchArg aArgGrad ( "","grad", "Use non-patented descriptor (default:false)", false ); - SwitchArg aArgSurfExtended("","surf128", "Uses extended SURF (128 descriptors) (default:false)", false); -#endif SwitchArg aArgLoadKeypoints("","loadkeys", "Load keypoints from file instead of detecting them. (default:false)\n", false); SwitchArg aArgFullScale("","fullscale", "Uses full scale image to detect keypoints (default:false)\n", false); - ValueArg<int> aArgSurfScoreThreshold("","surfscore", "Detection score threshold (default : 1000)\n", false, 1000, "int"); ValueArg<int> aArgSieve1Width("","sieve1width", "Sieve 1 : Number of buckets on width (default : 10)", false, 10, "int"); ValueArg<int> aArgSieve1Height("","sieve1height", "Sieve 1 : Number of buckets on height (default : 10)", false, 10, "int"); ValueArg<int> aArgSieve1Size("","sieve1size", "Sieve 1 : Max points per bucket (default : 10)\n", false, 10, "int"); @@ -116,10 +111,7 @@ ValueArg<int> aArgSieve2Size("","sieve2size", "Sieve 2 : Max points per bucket (default : 1)\n", false, 1 ,"int"); SwitchArg aArgPTGuiCompat("","ptgui", "Activate Autopano compatibility for PTGui\n", false); -#ifdef SURF_ENABLED - cmd.add ( aArgGrad ) ; - cmd.add(aArgSurfExtended); -#endif + cmd.add(aArgPTGuiCompat); cmd.add(aArgSieve2Size); cmd.add(aArgSieve2Height); @@ -133,14 +125,11 @@ cmd.add(aArgKDTreeSearchSteps); cmd.add(aArgSieve1Size); cmd.add(aArgSieve1Height); - cmd.add(aArgSieve1Width); - cmd.add(aArgSurfScoreThreshold); + cmd.add(aArgSieve1Width); cmd.add(aArgFullScale); cmd.add(aArgLoadKeypoints); - //cmd.add( aArgSurfExtended ); - //ValueArg<int> aArgNumKeys("k", "keys", "Number of keys per image pair", false, 10, "int"); //cmd.add( aArgNumKeys ); @@ -168,16 +157,6 @@ ioPanoDetector.setGradientDescriptor(true); -#ifdef SURF_ENABLED - if ( aArgGrad.isSet() ) { - ioPanoDetector.setGradientDescriptor(true); - } else { - ioPanoDetector.setGradientDescriptor(false); - } - - ioPanoDetector.setSurfExtended(aArgSurfExtended.isSet()); -#endif - if (aArgSurfScoreThreshold.isSet()) ioPanoDetector.setSurfScoreThreshold(aArgSurfScoreThreshold.getValue()); if (aArgSieve1Width.isSet()) ioPanoDetector.setSieve1Width(aArgSieve1Width.getValue()); if (aArgSieve1Height.isSet()) ioPanoDetector.setSieve1Height(aArgSieve1Height.getValue()); if (aArgSieve1Size.isSet()) ioPanoDetector.setSieve1Size(aArgSieve1Size.getValue()); |