7#include "RollingShutterCameraDetectorMap.h" 
   27        std::vector<double> times,
 
   28        std::vector<double> sampleCoeffs,
 
 
   77                                                  const double deltaT) {
 
   78    std::pair<double, double> jittered = 
removeJitter(sample, line);
 
 
  130    std::pair<double, double> jittered = 
removeJitter(sample, line);
 
  131    double currentSample = sample;
 
  132    double currentLine = line;
 
  135    int maxIterations = 50;
 
  137    while((qFabs(sample - jittered.first) > 1e-7) ||
 
  138          (qFabs(line - jittered.second) > 1e-7)) {
 
  140      currentSample = sample + (currentSample - jittered.first);
 
  141      currentLine = line + (currentLine - jittered.second);
 
  146      if (iterations > maxIterations) {
 
  147        QString message = 
"Max Iterations reached.";
 
  153    return std::pair<double, double>(currentSample, currentLine);
 
 
  171    double sampleDejitter = 0.0;
 
  172    double lineDejitter = 0.0;
 
  174    for (
unsigned int n = 1; n <= 
m_lineCoeffs.size(); n++) {
 
  184        timeEntry = (int)round(line);
 
  186      double time = 
m_times[timeEntry - 1];
 
  188      time = pow(time, exponent);
 
  189      sampleDejitter += (sampleCoeff * time);
 
  190      lineDejitter += (lineCoeff * time);
 
  192    return std::pair<double, double>(sample - sampleDejitter, line - lineDejitter);
 
 
double p_detectorLineSumming
The scaling factor for computing line resolution.
 
CameraDetectorMap(Camera *parent=0)
Default constructor assumes no summing and starting detector offsets.
 
double p_parentLine
The parent line calculated from the detector.
 
double p_parentSample
The parent sample calculated from the detector.
 
double p_detectorSample
Detector coordinate sample value.
 
double p_detectorLine
Detector coordinate line value.
 
Camera * p_camera
Pointer to the camera.
 
double p_detectorSampleSumming
The scaling factor for computing sample resolution.
 
@ Unknown
A type of error that cannot be classified as any of the other error types.
 
RollingShutterCameraDetectorMap(Camera *parent, std::vector< double > times, std::vector< double > sampleCoeffs, std::vector< double > lineCoeffs)
Constructs a RollingShutterCameraDetectorMap.
 
std::vector< double > m_times
List of normalized [-1, 1] readout times for all the lines in the input image.
 
virtual ~RollingShutterCameraDetectorMap()
Destructor.
 
std::pair< double, double > applyJitter(const double sample, const double line)
Iteratively finds a solution to "apply" jitter to an image coordinate.
 
std::vector< double > m_sampleCoeffs
List of coefficients for the n-order polynomial characterizing the jitter in the sample direction.
 
std::vector< double > m_lineCoeffs
List of coefficients for the n-order polynomial characterizing the jitter in the line direction.
 
std::pair< double, double > removeJitter(const double sample, const double line)
Remove the distortion from the image (parent) coordinates.
 
virtual bool SetParent(const double sample, const double line)
Compute detector position from a parent image coordinate.
 
virtual bool SetDetector(const double sample, const double line)
Compute parent position from a detector coordinate.
 
This is free and unencumbered software released into the public domain.