Isis 3.0 Object Programmers' Reference |
Home |
Distort/undistort focal plane coordinates. More...
#include <LroWideAngleCameraDistortionMap.h>
Public Member Functions | |
LroWideAngleCameraDistortionMap (Camera *parent, int naifIkCode) | |
Camera distortion map constructor. | |
virtual | ~LroWideAngleCameraDistortionMap () |
Destroys the LroWideAngleCameraDistortionMap object. | |
void | addFilter (int naifIkCode) |
Add an additional set of parameters for a given LROC/WAC filter. | |
void | setBand (int vband) |
Implements band-dependant distortion parameters. | |
virtual bool | SetFocalPlane (const double dx, const double dy) |
Compute undistorted focal plane x/y. | |
virtual bool | SetUndistortedFocalPlane (const double ux, const double uy) |
Compute distorted focal plane x/y. | |
void | SetDistortion (int naifIkCode) |
Load distortion coefficients. | |
std::vector< double > | OpticalDistortionCoefficients () const |
Return optical distortion polynomial coefficients. | |
double | ZDirection () const |
Return the direction of the focal plane Z-axis. | |
double | FocalPlaneX () const |
Return distorted focal plane x. | |
double | FocalPlaneY () const |
Return distorted focal plane y. | |
double | UndistortedFocalPlaneX () const |
Return undistorted focal plane x. | |
double | UndistortedFocalPlaneY () const |
Return undistorted focal plane y. | |
double | UndistortedFocalPlaneZ () const |
Return undistorted focal plane z. | |
Protected Attributes | |
Camera * | p_camera |
double | p_focalPlaneX |
double | p_focalPlaneY |
double | p_undistortedFocalPlaneX |
double | p_undistortedFocalPlaneY |
double | p_zDirection |
std::vector< double > | p_odk |
Private Attributes | |
QVector< std::vector< double > > | m_odkFilters |
Distort/undistort focal plane coordinates.
Creates a map for adding/removing optical distortions from the focal plane of a camera.
2009-11-19 Kris Becker - Changed the convergence tolerance from 1/10,000 of a pixel to 1/100 of a pixel
2010-05-05 Ken Edmundson - Corrected distorted and undistorted computations; Fix requires coefficients in the lro_instruments_v??.ti to be negative (essentially matches what is reported in the calibration document); removed the GuessDx method as it was not used; updated the UV boresight in the IK based upon analysis of the VIS and UV.
2012-07-06 Debbie A. Cook, Updated Spice members to be more compliant with Isis coding standards. References #972.
2011-08-30 Kris Becker - Implemented new decentering distortion model. This becomes version 3 of the camera model
2012-03-06 Kris Becker - Added distortion model tolerance parameter
2013-03-07 Kris Becker - Modified to implement new distortion model with three terms and allow for band independant distortions.
Definition at line 58 of file LroWideAngleCameraDistortionMap.h.
Isis::LroWideAngleCameraDistortionMap::LroWideAngleCameraDistortionMap | ( | Camera * | parent, |
int | naifIkCode | ||
) |
Camera distortion map constructor.
Create a camera distortion map. This class maps between distorted and undistorted focal plane x/y's. The default mapping is the identity, that is, the focal plane x/y and undistorted focal plane x/y will be identical.
parent | the parent camera that will use this distortion map |
zDirection | the direction of the focal plane Z-axis (either 1 or -1) |
Definition at line 47 of file LroWideAngleCameraDistortionMap.cpp.
References Isis::CameraDistortionMap::SetDistortion().
|
inlinevirtual |
Destroys the LroWideAngleCameraDistortionMap object.
Definition at line 63 of file LroWideAngleCameraDistortionMap.h.
void Isis::LroWideAngleCameraDistortionMap::addFilter | ( | int | naifIkCode | ) |
Add an additional set of parameters for a given LROC/WAC filter.
This method will read the parameters for LROC/WAC filter as indicated by the IK code provided. It will create a vector of these parameters and append them to the band list.
The filters added should correspond directly to the order in which the filters are physically stored in the ISIS cube (or the virtually selected bands).
naifIkCode | NAIF IK code for the desired filter to add. |
Definition at line 69 of file LroWideAngleCameraDistortionMap.cpp.
References Isis::Spice::getDouble().
Referenced by Isis::LroWideAngleCamera::LroWideAngleCamera().
|
inlineinherited |
Return distorted focal plane x.
Definition at line 72 of file CameraDistortionMap.h.
Referenced by Isis::ControlPoint::ComputeResiduals(), Isis::PushFrameCameraGroundMap::FindDistance(), Isis::Camera::RawFocalPlanetoImage(), Isis::Camera::SetRightAscensionDeclination(), and Isis::LineScanCameraSkyMap::SetSky().
|
inlineinherited |
Return distorted focal plane y.
Definition at line 77 of file CameraDistortionMap.h.
Referenced by Isis::ControlPoint::ComputeResiduals(), Isis::PushFrameCameraGroundMap::FindDistance(), Isis::Camera::RawFocalPlanetoImage(), Isis::Camera::SetRightAscensionDeclination(), and Isis::LineScanCameraSkyMap::SetSky().
|
inherited |
Return optical distortion polynomial coefficients.
Definition at line 195 of file CameraDistortionMap.cpp.
void Isis::LroWideAngleCameraDistortionMap::setBand | ( | int | vband | ) |
Implements band-dependant distortion parameters.
This method should be used to switch to another band's set of distortion parameters. See the addFilter() method to add additional band parameters to this object. Note that the band number should correspond with the same order as they were added in the addFilter() method.
vband | Band number to select. Range is 1 to Bands. |
Definition at line 93 of file LroWideAngleCameraDistortionMap.cpp.
References _FILEINFO_, and Isis::IException::Programmer.
Referenced by Isis::LroWideAngleCamera::SetBand().
|
inherited |
Load distortion coefficients.
This method loads the distortion coefficients from the instrument kernel. The coefficients in the NAIF instrument kernel are expected to be in the form of:
These coefficient will be used to convert from focal plane x,y to undistorted x,y as follows (add equation here)
naifIkCode | Code to search for in instrument kernel |
Generalize to read variable number of coefficients
Add latex equation to the documentation
Definition at line 65 of file CameraDistortionMap.cpp.
References Isis::toString().
Referenced by Isis::AmicaCamera::AmicaCamera(), Isis::CTXCamera::CTXCamera(), Isis::HiriseCamera::HiriseCamera(), LroWideAngleCameraDistortionMap(), Isis::LoHighDistortionMap::SetDistortion(), and Isis::LoMediumDistortionMap::SetDistortion().
|
virtual |
Compute undistorted focal plane x/y.
Compute undistorted focal plane x/y given a distorted focal plane x/y.
dx | distorted focal plane x in millimeters |
dy | distorted focal plane y in millimeters |
Reimplemented from Isis::CameraDistortionMap.
Definition at line 119 of file LroWideAngleCameraDistortionMap.cpp.
|
virtual |
Compute distorted focal plane x/y.
Compute distorted focal plane x/y given an undistorted focal plane x/y.
ux | undistorted focal plane x in millimeters |
uy | undistorted focal plane y in millimeters |
Generalize polynomial equation
Figure out a better solution for divergence condition
Reimplemented from Isis::CameraDistortionMap.
Definition at line 155 of file LroWideAngleCameraDistortionMap.cpp.
|
inlineinherited |
Return undistorted focal plane x.
Definition at line 82 of file CameraDistortionMap.h.
Referenced by Isis::BundleAdjust::ApproximatePoint_ClosestApproach(), Isis::ControlPoint::ComputeApriori(), and Isis::Camera::SetImage().
|
inlineinherited |
Return undistorted focal plane y.
Definition at line 87 of file CameraDistortionMap.h.
Referenced by Isis::BundleAdjust::ApproximatePoint_ClosestApproach(), Isis::ControlPoint::ComputeApriori(), and Isis::Camera::SetImage().
|
inlineinherited |
Return undistorted focal plane z.
Definition at line 92 of file CameraDistortionMap.h.
References Isis::Camera::FocalLength().
Referenced by Isis::BundleAdjust::ApproximatePoint_ClosestApproach(), and Isis::Camera::SetImage().
|
inherited |
Return the direction of the focal plane Z-axis.
Definition at line 201 of file CameraDistortionMap.cpp.