22#ifndef __detectpano_panodetector_h
23#define __detectpano_panodetector_h
25#include <hugin_config.h>
38#include <flann/flann.hpp>
!! from PTOptimise.h 1951
static int ptProgress(int command, char *argument)
static int ptinfoDlg(int command, char *argument)
std::string getKeyfilenameFor(std::string keyfilesPath, std::string filename)
returns the filename for the keyfile for a given image
void setSieve1Height(int iHeight)
double _kdTreeSecondDistance
double getKDTreeSecondDistance() const
static bool AnalyzeImage(ImgData &ioImgInfo, const PanoDetector &iPanoDetector)
static bool MakeKeyPointDescriptorsInImage(ImgData &ioImgInfo, const PanoDetector &iPanoDetector)
void writeKeyfile(ImgData &imgInfo)
void setVerbose(int level)
void setRansacIterations(int iIters)
void setSieve2Width(int iWidth)
int getSieve2Width() const
static bool FindMatchesInPair(MatchData &ioMatchData, const PanoDetector &iPanoDetector)
int getSieve1Size() const
std::vector< std::string > FileNameList_t
void setCleanup(bool iCleanup)
static bool FindKeyPointsInImage(ImgData &ioImgInfo, const PanoDetector &iPanoDetector)
void buildMultiRowImageSets()
search for image layer and image stacks for the multirow matching step
void setSieve1Size(int iSize)
void setRansacMode(HuginBase::RANSACOptimizer::Mode mode)
std::vector< MatchData >::iterator MatchDataIt_t
MatchingStrategy getMatchingStrategy() const
struct celeste::svm_model * svmModel
HuginBase::Panorama * _panoramaInfo
bool getWriteAllKeyPoints() const
int getSieve1Width() const
static bool FilterKeyPointsInImage(ImgData &ioImgInfo, const PanoDetector &iPanoDetector)
std::vector< HuginBase::UIntVector > _image_stacks
vector with image numbers of all stacks, contains only the unlinked stacks
MatchingStrategy
for selecting matching strategy
double getCelesteThreshold() const
std::vector< int > _keyPointsIdx
std::map< int, ImgData >::iterator ImgDataIt_t
void setOutputFile(const std::string &outputFile)
void setKDTreeSecondDistance(double iDist)
int getSieve2Height() const
void setSieve2Height(int iHeight)
std::vector< int > getKeyPointsIdx() const
std::vector< std::string >::iterator FileNameListIt_t
void setSieve1Width(int iWidth)
bool match(std::vector< HuginBase::UIntSet > &checkedPairs)
static bool BuildKDTreesInImage(ImgData &ioImgInfo, const PanoDetector &iPanoDetector)
void setKeyPointsIdx(std::vector< int > keyPointsIdx)
void setMatchingStrategy(MatchingStrategy iMatchStrategy)
void setCached(bool iCached)
int getSieve1Height() const
void setRansacDistanceThreshold(int iDT)
void setKeyfilesPath(const std::string &keypath)
int getKDTreeSearchSteps() const
void setInputFile(const std::string &inputFile)
bool matchPrealigned(HuginBase::Panorama *pano, std::vector< HuginBase::UIntSet > &connectedImages, std::vector< size_t > imgMap, bool exactOverlap=true)
does only matches image pairs which overlaps and don't have control points
HuginBase::Panorama * getPanoramaInfo() const
int getMinimumMatches() const
void setCelesteRadius(int iCelesteRadius)
PanoDetector(const PanoDetector &)
static bool RansacMatchesInPairHomography(MatchData &ioMatchData, const PanoDetector &iPanoDetector)
int getRansacDistanceThreshold() const
std::vector< MatchData > MatchData_t
HuginBase::RANSACOptimizer::Mode _ransacMode
int getSieve2Size() const
void setLinearMatchLen(int iLen)
static bool FreeMemoryInImage(ImgData &ioImgInfo, const PanoDetector &iPanoDetector)
static bool RansacMatchesInPair(MatchData &ioMatchData, const PanoDetector &iPanoDetector)
int getLinearMatchLen() const
static bool RansacMatchesInPairCam(MatchData &ioMatchData, const PanoDetector &iPanoDetector)
void setWriteAllKeyPoints(bool writeAllKeyPoints=true)
HuginBase::Panorama _panoramaInfoCopy
void setCelesteThreshold(double iCelesteThreshold)
void setMinimumMatches(int iMatches)
lfeat::KeyPointDetector KeyPointDetector
static bool LoadKeypoints(ImgData &ioImgInfo, const PanoDetector &iPanoDetector)
void setDownscale(bool iDown)
void setCores(int iCores)
std::shared_ptr< KPKDTree > KPKDTreePtr
HuginBase::UIntSet _image_layer
image set contains only the images with the median exposure of each stack
void setCeleste(bool iCeleste)
bool getDownscale() const
std::set< std::string > _cpsHashSet
MatchingStrategy _matchingStrategy
KDTreeSpace::KDTree< KDElemKeyPoint, double > KPKDTree
static bool RemapBackKeypoints(ImgData &ioImgInfo, const PanoDetector &iPanoDetector)
int getCelesteRadius() const
std::map< int, ImgData > ImgData_t
int getRansacIterations() const
void setSieve2Size(int iSize)
PanoDetector & operator=(const PanoDetector &)
HuginBase::RANSACOptimizer::Mode getRansacMode()
static bool FilterMatchesInPair(MatchData &ioMatchData, const PanoDetector &iPanoDetector)
void setKDTreeSearchSteps(int iSteps)
std::set< unsigned int > UIntSet
std::vector< PointMatchPtr > PointMatchVector_t
std::vector< KeyPointPtr > KeyPointVect_t
flann::Index< flann::L2< double > > * _flann_index
flann::Matrix< double > _flann_descriptors
HuginBase::PanoramaOptions _projOpts
bool NeedsRemapping() const
void SetSizeMode(const SizeMode newSizeMode)
SizeMode GetSizeMode() const
lfeat::KeyPointVect_t _kp
vigra::BImage _distancemap
SizeMode
enumeration of different detection modes
lfeat::PointMatchVector_t _matches
std::vector< deghosting::BImagePtr > threshold(const std::vector< deghosting::FImagePtr > &inputImages, const double threshold, const uint16_t flags)
Threshold function used for creating alpha masks for images.