/usr/include/ossim/projection/ossimOptimizableProjection.h is in libossim-dev 1.7.21-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | //*****************************************************************************
// FILE: ossimOptimizableProjection.h
//*****************************************************************************
// $Id: ossimOptimizableProjection.h 11302 2007-07-16 19:37:26Z dburken $
//TODO : forwardRelativeAccuracy should return covariance matrix, and
// use an optional ground position as input
#ifndef ossimOptimizableProjection_HEADER
#define ossimOptimizableProjection_HEADER
#include <ossim/projection/ossimProjection.h>
//fwd class declaration
class ossimTieGptSet;
/**
* virtual class enabling projection optimization
* (can be used for outlier rejection - RANSAC)
*/
class OSSIMDLLEXPORT ossimOptimizableProjection
{
public:
/*!
* Construction and init
*/
ossimOptimizableProjection();
ossimOptimizableProjection(const ossimOptimizableProjection& source);
virtual ~ossimOptimizableProjection();
virtual ossimOptimizableProjection& operator=(
const ossimOptimizableProjection& source);
/*!
* @brief setupFromString() Derived classes should implement as needed.
* Initialize parameters needed for optimizeFit and degreesOfFreedom
*
* @return This implementation does nothing and returns false.
*/
virtual bool setupOptimizer(const ossimString& setup);
/*!
* useForward()
* return true when it's better (more accurate / fast) to use forward
* (from ground to image) than inverse(from image to ground)
*/
virtual bool useForward()const=0;
/*!
* degreesOfFreedom()
* number of degrees of freedom (eg: 8 for bilinear, 6 for affine,
* 2 for translation)
* especially useful when not inheriting from AdjustableParameterInterface
*/
virtual ossim_uint32 degreesOfFreedom()const=0;
/*!
* @brief needsInitialState()
*
* @return This implementation returns false. Sub classes should true if
* the projection needs to be initialized to be optimized,
* eg: sensor models.
*/
virtual bool needsInitialState()const;
/*!
* optimizeFit()
* adjusts projection to GLOBALLY fit best to ALL tie points
* (no outlier rejection)
* can select an optional threshold for accuracy
*
* RETURNS : resulting image error variance of fitted model, or negative
* value for error
*
* IMPORTANT : the unit for *targetVariance and the returned value is :
* meters^2 when useForward() is true
* OR
* pixel^2 if useForward() is false
*/
virtual double optimizeFit(const ossimTieGptSet& tieSet,
double* targetVariance=0)=0;
TYPE_DATA
};
#endif
|