Isis Developer Reference
|
Convert between parent image coordinates and detector coordinates. More...
#include <RollingShutterCameraDetectorMap.h>
Public Member Functions | |
RollingShutterCameraDetectorMap (Camera *parent, std::vector< double > times, std::vector< double > sampleCoeffs, std::vector< double > lineCoeffs) | |
Constructs a RollingShutterCameraDetectorMap. | |
virtual | ~RollingShutterCameraDetectorMap () |
Destructor. | |
virtual bool | SetParent (const double sample, const double line) |
Compute detector position from a parent image coordinate. | |
virtual bool | SetParent (const double sample, const double line, const double deltaT) |
Compute detector position from a parent image coordinate. | |
virtual bool | SetDetector (const double sample, const double line) |
Compute parent position from a detector coordinate. | |
std::pair< double, double > | applyJitter (const double sample, const double line) |
Iteratively finds a solution to "apply" jitter to an image coordinate. | |
std::pair< double, double > | removeJitter (const double sample, const double line) |
Remove the distortion from the image (parent) coordinates. | |
double | AdjustedStartingSample () const |
Return the starting detector sample adjusted for summation. | |
double | AdjustedStartingLine () const |
Return the starting detector line adjusted for summation. | |
double | ParentSample () const |
Return parent sample. | |
double | ParentLine () const |
Return parent line. | |
double | DetectorSample () const |
Return detector sample. | |
double | DetectorLine () const |
Return detector line. | |
void | SetStartingDetectorSample (const double sample) |
Set the starting detector sample. | |
void | SetStartingDetectorLine (const double line) |
Set the starting detector line. | |
void | SetDetectorSampleSumming (const double summing) |
Set sample summing mode. | |
void | SetDetectorLineSumming (const double summing) |
Set line summing mode. | |
virtual double | SampleScaleFactor () const |
Return scaling factor for computing sample resolution. | |
virtual double | LineScaleFactor () const |
Return scaling factor for computing line resolution. | |
virtual double | LineRate () const |
Return the line collection rate (0 for framing cameras) | |
virtual double | exposureDuration (const double sample, const double line, const int band) const |
This virtual method is for returning the exposure duration of a given pixel. | |
Protected Attributes | |
Camera * | p_camera |
Pointer to the camera. | |
double | p_parentSample |
The parent sample calculated from the detector. | |
double | p_parentLine |
The parent line calculated from the detector. | |
double | p_detectorLine |
Detector coordinate line value. | |
double | p_detectorSample |
Detector coordinate sample value. | |
double | p_detectorSampleSumming |
The scaling factor for computing sample resolution. | |
double | p_detectorLineSumming |
The scaling factor for computing line resolution. | |
double | p_startingDetectorSample |
Detector start coordinate sample value. | |
double | p_startingDetectorLine |
Detector start coordinate line value. | |
double | p_ss |
Start sample. | |
double | p_sl |
Start line. | |
Convert between parent image coordinates and detector coordinates.
This class is used to convert between parent dector coordinates (sample/line) and detector coordinates for a rolling shutter camera.
Isis::RollingShutterCameraDetectorMap::RollingShutterCameraDetectorMap | ( | Camera * | parent, |
std::vector< double > | times, | ||
std::vector< double > | sampleCoeffs, | ||
std::vector< double > | lineCoeffs ) |
Constructs a RollingShutterCameraDetectorMap.
times | A std::vector of normalized readout times |
coeffs | A std::vector of the coefficients of the polynomial that fit the jitter. The coefficients are from highest degree to lowest degree. |
parent | The parent camera that uses the detector map. |
|
virtual |
Destructor.
|
inherited |
Return the starting detector line adjusted for summation.
References Isis::CameraDetectorMap::p_sl.
|
inherited |
Return the starting detector sample adjusted for summation.
References Isis::CameraDetectorMap::p_ss.
std::pair< double, double > Isis::RollingShutterCameraDetectorMap::applyJitter | ( | const double | sample, |
const double | line ) |
Iteratively finds a solution to "apply" jitter to an image coordinate.
Each iteration adds jitter to the original image coordinate until it finds an image coordinate that maps back to to the original image coordinate when jitter is removed. This is similar to how we handle applying radial distortion.
Note: If the jitter varies significantly (>1 pixel difference) then it is possible for there to be multiple solutions to the inverse problem and it is impossible to know which one to choose.
References _FILEINFO_, removeJitter(), and Isis::IException::Unknown.
Referenced by SetDetector().
|
inherited |
Return detector line.
References Isis::CameraDetectorMap::p_detectorLine.
Referenced by Isis::Camera::SetImage(), and Isis::Camera::SetImage().
|
inherited |
Return detector sample.
References Isis::CameraDetectorMap::p_detectorSample.
Referenced by Isis::Camera::SetImage(), and Isis::Camera::SetImage().
|
virtualinherited |
This virtual method is for returning the exposure duration of a given pixel.
For framing cameras, exposure duration is not available so it throws an error.
sample | The sample of the desired pixel. |
line | The line of the desired pixel. |
band | The band of the desired pixel. |
IException::Programmer | "Exposure duration is only available for LineScan, VariableLineScan, and PushFrame Cameras." |
Reimplemented in Isis::LineScanCameraDetectorMap, Isis::PushFrameCameraDetectorMap, Isis::VariableLineScanCameraDetectorMap, and Isis::NirsDetectorMap.
References _FILEINFO_, and Isis::IException::Programmer.
Referenced by Isis::Camera::exposureDuration(), and Isis::Camera::exposureDuration().
|
virtualinherited |
Return the line collection rate (0 for framing cameras)
Reimplemented in Isis::ApolloPanoramicDetectorMap, Isis::LineScanCameraDetectorMap, and Isis::RadarPulseMap.
Referenced by Isis::LineScanCameraSkyMap::SetSky().
|
virtualinherited |
Return scaling factor for computing line resolution.
References Isis::CameraDetectorMap::p_detectorLineSumming.
Referenced by Isis::Camera::LineResolution(), Isis::Camera::ObliqueLineResolution(), Isis::ThemisIrCamera::SetBand(), Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetParent(), and Isis::PushFrameCameraDetectorMap::TotalFramelets().
|
inherited |
Return parent line.
References Isis::CameraDetectorMap::p_parentLine.
Referenced by Isis::Camera::SetRightAscensionDeclination().
|
inherited |
Return parent sample.
References Isis::CameraDetectorMap::p_parentSample.
Referenced by Isis::Camera::SetRightAscensionDeclination().
std::pair< double, double > Isis::RollingShutterCameraDetectorMap::removeJitter | ( | const double | sample, |
const double | line ) |
Remove the distortion from the image (parent) coordinates.
This is a helper function for the SetParent method.
sample | Input (parent) image sample coordinate. |
line | Input (parent) image line coordinate. |
References round.
Referenced by applyJitter(), and SetParent().
|
virtualinherited |
Return scaling factor for computing sample resolution.
References Isis::CameraDetectorMap::p_detectorSampleSumming.
Referenced by Isis::Camera::ObliqueSampleResolution(), and Isis::Camera::SampleResolution().
|
virtual |
Compute parent position from a detector coordinate.
This method will compute a parent sample/line given a detector coordinate
sample | Sample number in the detector |
line | Line number in the detector |
Reimplemented from Isis::CameraDetectorMap.
References applyJitter(), Isis::CameraDetectorMap::p_detectorLine, Isis::CameraDetectorMap::p_detectorLineSumming, Isis::CameraDetectorMap::p_detectorSample, Isis::CameraDetectorMap::p_detectorSampleSumming, Isis::CameraDetectorMap::p_parentLine, Isis::CameraDetectorMap::p_parentSample, Isis::CameraDetectorMap::p_sl, and Isis::CameraDetectorMap::p_ss.
|
inlineinherited |
Set line summing mode.
Use this method to specify if detector lines are summed/averaged. That is, one image lines represents the average of N detectors. If not set the default is 1.
summing | Line summing mode |
References Isis::CameraDetectorMap::p_detectorLineSumming.
Referenced by Isis::CrismCamera::CrismCamera().
|
inlineinherited |
Set sample summing mode.
Use this method to specify if detector samples are summed/averaged. That is, one image sample represents the average of N detectors. If not set the default is 1.
summing | Sample summing mode |
References Isis::CameraDetectorMap::p_detectorSampleSumming.
Referenced by Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::CrismCamera::CrismCamera(), Isis::DawnVirCamera::DawnVirCamera(), Isis::HrscCamera::HrscCamera(), and Isis::RosettaVirtisCamera::RosettaVirtisCamera().
|
virtual |
Compute detector position from a parent image coordinate.
This method will compute the detector position from the parent line/sample coordinate
sample | Sample number in the parent image |
line | Line number in the parent image |
Reimplemented from Isis::CameraDetectorMap.
References SetParent().
Referenced by SetParent().
|
virtual |
Compute detector position from a parent image coordinate.
This method will compute the detector position from the parent line/sample coordinate and an offset from the currently set time in seconds. If the time has not already been set, the input offset is not applied.
sample | Sample number in the parent image |
line | Line number in the parent image |
deltaT | option time offset from center of exposure in seconds |
Reimplemented from Isis::CameraDetectorMap.
References Isis::Spice::isTimeSet(), Isis::CameraDetectorMap::p_camera, Isis::CameraDetectorMap::p_detectorLine, Isis::CameraDetectorMap::p_detectorLineSumming, Isis::CameraDetectorMap::p_detectorSample, Isis::CameraDetectorMap::p_detectorSampleSumming, Isis::CameraDetectorMap::p_parentLine, Isis::CameraDetectorMap::p_parentSample, Isis::CameraDetectorMap::p_sl, Isis::CameraDetectorMap::p_ss, removeJitter(), Isis::Sensor::setTime(), and Isis::Spice::time().
|
inlineinherited |
Set the starting detector line.
Use this method to specify the starting detector that represents the first image line in the cube. If not set the default is 1.
line | Starting detector line |
References Isis::CameraDetectorMap::p_startingDetectorLine.
|
inlineinherited |
Set the starting detector sample.
Use this method to specify the starting detector that represents the first image sample in the cube. If not set the default is 1.
sample | Starting detector sample |
References Isis::CameraDetectorMap::p_startingDetectorSample.
Referenced by Isis::ApolloPanoramicCamera::ApolloPanoramicCamera().
|
protectedinherited |
Pointer to the camera.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::ApolloPanoramicDetectorMap::SetDetector(), Isis::LineScanCameraDetectorMap::SetDetector(), Isis::RadarPulseMap::SetDetector(), Isis::VariableLineScanCameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetFramelet(), Isis::ApolloPanoramicDetectorMap::SetParent(), Isis::RadarPulseMap::SetParent(), Isis::MocWideAngleDetectorMap::SetParent(), Isis::CameraDetectorMap::SetParent(), Isis::LineScanCameraDetectorMap::SetParent(), SetParent(), Isis::VariableLineScanCameraDetectorMap::SetParent(), and Isis::PushFrameCameraDetectorMap::TotalFramelets().
|
protectedinherited |
Detector coordinate line value.
Referenced by Isis::CameraDetectorMap::DetectorLine(), Isis::ApolloPanoramicDetectorMap::SetDetector(), Isis::CameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), SetDetector(), Isis::ApolloPanoramicDetectorMap::SetParent(), Isis::RadarPulseMap::SetParent(), Isis::CameraDetectorMap::SetParent(), Isis::LineScanCameraDetectorMap::SetParent(), Isis::PushFrameCameraDetectorMap::SetParent(), SetParent(), and Isis::VariableLineScanCameraDetectorMap::SetParent().
|
protectedinherited |
The scaling factor for computing line resolution.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::CameraDetectorMap::LineScaleFactor(), Isis::CameraDetectorMap::SetDetector(), SetDetector(), Isis::CameraDetectorMap::SetDetectorLineSumming(), Isis::CameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
Detector coordinate sample value.
Referenced by Isis::CameraDetectorMap::DetectorSample(), Isis::ApolloPanoramicDetectorMap::SetDetector(), Isis::CameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), SetDetector(), Isis::ApolloPanoramicDetectorMap::SetParent(), Isis::MocWideAngleDetectorMap::SetParent(), Isis::CameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
The scaling factor for computing sample resolution.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::CameraDetectorMap::SampleScaleFactor(), Isis::CameraDetectorMap::SetDetector(), SetDetector(), Isis::CameraDetectorMap::SetDetectorSampleSumming(), Isis::CameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
The parent line calculated from the detector.
Referenced by Isis::CameraDetectorMap::ParentLine(), Isis::ApolloPanoramicDetectorMap::SetDetector(), Isis::CameraDetectorMap::SetDetector(), Isis::LineScanCameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::RadarPulseMap::SetDetector(), SetDetector(), Isis::VariableLineScanCameraDetectorMap::SetDetector(), Isis::ApolloPanoramicDetectorMap::SetParent(), Isis::CameraDetectorMap::SetParent(), Isis::PushFrameCameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
The parent sample calculated from the detector.
Referenced by Isis::CameraDetectorMap::ParentSample(), Isis::ApolloPanoramicDetectorMap::SetDetector(), Isis::CameraDetectorMap::SetDetector(), SetDetector(), Isis::MocWideAngleDetectorMap::SetDetector(), Isis::ApolloPanoramicDetectorMap::SetParent(), Isis::CameraDetectorMap::SetParent(), Isis::PushFrameCameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
Start line.
Referenced by Isis::CameraDetectorMap::AdjustedStartingLine(), Isis::CameraDetectorMap::SetDetector(), SetDetector(), Isis::CameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
Start sample.
Referenced by Isis::CameraDetectorMap::AdjustedStartingSample(), Isis::CameraDetectorMap::SetDetector(), SetDetector(), Isis::CameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
Detector start coordinate line value.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), and Isis::CameraDetectorMap::SetStartingDetectorLine().
|
protectedinherited |
Detector start coordinate sample value.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), and Isis::CameraDetectorMap::SetStartingDetectorSample().