32#ifndef _HSI_IGNORE_SECTION
152 virtual void swapImages(
unsigned int img1,
unsigned int img2) =0;
196#define image_variable( name, type, default_value ) \
197 virtual void linkImageVariable##name(unsigned int sourceImgNr, unsigned int destImgNr) =0;
204#define image_variable( name, type, default_value ) \
205 virtual void unlinkImageVariable##name(unsigned int imgNr) =0;
362 const UIntSet & imgs)
const =0;
represents a control point
virtual void clearDirty()=0
clear dirty flag.
virtual void imageChanged(unsigned int imgNr)=0
mark image for change notification.
virtual bool removeObserver(PanoramaObserver *observer)=0
remove a panorama observer.
virtual void markAsOptimized(bool optimized=true)=0
virtual ~ManagedPanoramaData()
virtual bool setMementoToCopyOf(const PanoramaDataMemento *const memento)=0
set the internal state
virtual void changeFinished()=0
notify observers about changes in this class
virtual void clearObservers()=0
remove all panorama observers.
virtual bool needsOptimization()=0
true if control points or lens variables have been changed after the last optimisation
virtual void addObserver(PanoramaObserver *o)=0
add a panorama observer.
virtual PanoramaDataMemento * getNewMemento() const =0
get the internal state
base class, which stores one mask polygon
Memento class for a PanoramaData object.
PanoramaDataMemento()
force pure abstract behaviour
virtual ~PanoramaDataMemento()
virtual std::size_t getNrOfCtrlPoints() const =0
number of control points
virtual void setOptions(const PanoramaOptions &opt)=0
set new output settings This is not used directly for optimizing/stiching, but it can be feed into ru...
virtual const ControlPoint & getCtrlPoint(std::size_t nr) const =0
get a control point, counting starts with 0
virtual const OptimizeVector & getOptimizeVector() const =0
return the optimize settings stored inside panorama
virtual VariableMapVector getVariables() const =0
get variables of this panorama
virtual void changeControlPoint(unsigned int pNr, const ControlPoint &point)=0
change a control Point.
virtual const PanoramaOptions & getOptions() const =0
returns the options for this panorama
virtual const VariableMap getImageVariables(unsigned int imgNr) const =0
get variables of an image
virtual void updateLineCtrlPoints()=0
assign new mode line numbers, if required
virtual void checkRefOptStatus(bool &linkRefImgsYaw, bool &linkRefImgsPitch, bool &linkRefImgsRoll)=0
checks if yaw/pitch/roll of reference image can be check, it depends on number and type of control po...
virtual void changeFinished()=0
tells the data container to perform some maintainance if neccesary
virtual void setSrcImage(unsigned int nr, const SrcPanoImage &img)=0
set input image parameters TODO: Propagate changes to linked images.
virtual UIntSet getActiveImages() const =0
get active images
virtual void updateCtrlPointErrors(const CPVector &controlPoints)=0
update control points distances.
virtual void updateOptimizeVector()=0
updates the optimize vector according to master switches
virtual void setOptimizerSwitch(const int newSwitch)=0
set optimizer master switch
virtual void printPanoramaScript(std::ostream &o, const OptimizeVector &optvars, const PanoramaOptions &options, const UIntSet &imgs, bool forPTOptimizer, const std::string &stripPrefix="") const =0
create an optimizer script
virtual const int getPhotometricOptimizerSwitch() const =0
return the photometric optimizer master switch
virtual void moveImage(size_t img1, size_t img2)=0
moves images.
virtual void setOptimizeVector(const OptimizeVector &optvec)=0
set optimize setting
virtual void removeCtrlPoint(unsigned int pNr)=0
remove a control point.
virtual void imageChanged(unsigned int imgNr)=0
mark image change for maintainance
virtual const int getOptimizerSwitch() const =0
returns optimizer master switch
virtual void setImageFilename(unsigned int img, const std::string &fname)=0
set a new image filename
virtual void removeDuplicateCtrlPoints()=0
removes duplicates control points
virtual PanoramaData * getNewSubset(const UIntSet &imgs) const =0
virtual SrcPanoImage getSrcImage(unsigned imgNr) const =0
get a complete description of a source image
virtual void updateWhiteBalance(double redFactor, double blueFactor)=0
update the global white balace of the panorama by multiplying the red and blue factor of each image w...
virtual void swapImages(unsigned int img1, unsigned int img2)=0
swap images.
virtual void updateVariable(unsigned int imgNr, const Variable &var)=0
update a single variable
virtual void setPhotometricOptimizerSwitch(const int newSwitch)=0
sets the photometric optimizer master switch
virtual void updateVariables(const UIntSet &imgs, const VariableMapVector &var)=0
update variables for some specific images
virtual void updateVariables(unsigned int imgNr, const VariableMap &var)=0
Set variables for a single picture.
virtual const CPVector & getCtrlPoints() const =0
get all control point of this Panorama
virtual void printStitcherScript(std::ostream &o, const PanoramaOptions &target, const UIntSet &imgs) const =0
create the stitcher script
virtual void setImage(std::size_t nr, const SrcPanoImage &img)=0
set a panorama image, counting starts with 0
virtual int getNextCPTypeLineNumber() const =0
get the number of a control point
virtual const SrcPanoImage & getImage(std::size_t nr) const =0
get a panorama image, counting starts with 0
virtual void updateVariables(const VariableMapVector &vars)=0
Set the variables.
virtual std::size_t getNrOfImages() const =0
number of images.
virtual void transferMask(MaskPolygon mask, unsigned int imgNr, const UIntSet &targetImgs)=0
transfers given mask from image imgNr to all targetImgs
virtual unsigned int addImage(const SrcPanoImage &img)=0
the the number for a specific image
virtual std::vector< unsigned int > getCtrlPointsForImage(unsigned int imgNr) const =0
return all control points for a given image.
virtual void activateImage(unsigned int imgNr, bool active=true)=0
mark an image as active or inactive.
virtual unsigned int addCtrlPoint(const ControlPoint &point)=0
add a new control point.
virtual void updateCtrlPointErrors(const UIntSet &imgs, const CPVector &cps)=0
update control points for a subset of images.
virtual PanoramaData * getUnlinkedSubset(UIntSetVector &imageGroups) const =0
virtual void updateMasks(bool convertPosMaskToNeg=false)=0
updates all active masks
virtual void removeImage(unsigned int nr)=0
creates an image, from filename, and a Lens, if needed
virtual PanoramaData * getNewCopy() const =0
virtual void updateMasksForImage(unsigned int imgNr, MaskPolygonVector newMasks)=0
set complete mask list for image with number
virtual std::set< size_t > getRefImages()=0
returns set of reference image and images linked with reference images
virtual void setCtrlPoints(const CPVector &points)=0
set all control points (Ippei: Is this supposed to be 'add' method?)
this handler class will receive change events from the Panorama.
virtual void panoramaImagesChanged(Panorama &pano, const UIntSet &changed)=0
notifies about changes to images
virtual ~PanoramaObserver()
virtual void panoramaChanged(Panorama &pano)=0
Notification about a Panorama change.
All variables of a source image.
a variable has a value and a name.
This file specifies what image variables SrcPanoImg should have.
mainly consists of wrapper around the pano tools library, to assist in ressource management and to pr...
std::vector< unsigned int > UIntVector
std::vector< MaskPolygon > MaskPolygonVector
std::vector< VariableMap > VariableMapVector
std::vector< ControlPoint > CPVector
std::vector< std::set< std::string > > OptimizeVector
std::vector< UIntSet > UIntSetVector
std::set< unsigned int > UIntSet
std::map< std::string, Variable > VariableMap
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.