Isis 3.0 Object Programmers' Reference |
Home |
Distort/undistort focal plane coordinates. More...
#include <TaylorCameraDistortionMap.h>
Public Member Functions | |
TaylorCameraDistortionMap (Camera *parent, double zDirection=1.0) | |
Taylor series camera distortion map constructor. | |
void | SetDistortion (const int naifIkCode) |
Load distortion coefficients. | |
~TaylorCameraDistortionMap () | |
Destructor. | |
bool | SetFocalPlane (const double dx, const double dy) |
Compute undistorted focal plane x/y. | |
bool | SetUndistortedFocalPlane (const double ux, const double uy) |
Compute distorted focal plane x/y. | |
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 Member Functions | |
void | DistortionFunction (double ux, double uy, double *dx, double *dy) |
Compute distorted focal plane dx,dy given an undistorted focal plane ux,uy. | |
void | DistortionFunctionJacobian (double x, double y, double *Jxx, double *Jxy, double *Jyx, double *Jyy) |
Jacobian of the distortion function. | |
Protected Attributes | |
std::vector< double > | p_odtx |
distortion x coefficients | |
std::vector< double > | p_odty |
distortion y coefficients | |
Camera * | p_camera |
double | p_focalPlaneX |
double | p_focalPlaneY |
double | p_undistortedFocalPlaneX |
double | p_undistortedFocalPlaneY |
double | p_zDirection |
std::vector< double > | p_odk |
Distort/undistort focal plane coordinates.
Creates a map for adding/removing optical distortions from the focal plane of a camera. This class describes a non-radial distortion map. The distortion map is a third-order Taylor series expansion of a generic function.
2011-05-03 Jeannie Walldren - Added Isis disclaimer.
2011-05-23 Janet Barrett and Steven Lambright - Spice::GetDouble is no longer a static call.
2012-07-06 Debbie A. Cook, Updated Spice members to be more compliant with Isis coding standards. References #972
Definition at line 51 of file TaylorCameraDistortionMap.h.
Isis::TaylorCameraDistortionMap::TaylorCameraDistortionMap | ( | Camera * | parent, |
double | zDirection = 1.0 |
||
) |
Taylor series camera distortion map constructor.
Create a geometric distortion model which is approximated by a third-order Taylor series expansion. 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 41 of file TaylorCameraDistortionMap.cpp.
|
inline |
Destructor.
Definition at line 58 of file TaylorCameraDistortionMap.h.
|
protected |
Compute distorted focal plane dx,dy given an undistorted focal plane ux,uy.
This describes the third order Taylor approximation to the distortion model.
ux | Undistored x |
uy | Undistored y |
dx | Result distorted x |
dy | Result distorted y |
Definition at line 215 of file TaylorCameraDistortionMap.cpp.
References p_odtx, and p_odty.
Referenced by SetFocalPlane(), and SetUndistortedFocalPlane().
|
protected |
Jacobian of the distortion function.
The Jacobian was computed algebraically from the function described in the DistortionFunction method.
x | |
y | |
Jxx | |
Jxy | |
Jyx | |
Jyy |
Definition at line 251 of file TaylorCameraDistortionMap.cpp.
References p_odtx, and p_odty.
Referenced by SetFocalPlane().
|
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::TaylorCameraDistortionMap::SetDistortion | ( | const int | naifIkCode | ) |
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 between focal plane xp,yp to undistorted x,y as follows
[ xp ] = [ xa xb xc xd xe xf xg xh xi xj ] * [ 1 ] [ yp ] [ ya yb yc yd ye yf yg yh yi yj ] [ x ] [ y ] [ x*x ] [ x*y ] [ y*y ] [ x*x*x ] [ x*x*y ] [ x*y*y ] [ y*y*y ]
naifIkCode | Code to search for in instrument kernel |
Definition at line 75 of file TaylorCameraDistortionMap.cpp.
References Isis::Spice::getDouble(), p_odtx, p_odty, and Isis::toString().
Referenced by Isis::MdisCamera::MdisCamera().
|
virtual |
Compute undistorted focal plane x/y.
Compute undistorted focal plane x/y given a distorted focal plane x/y. The undistorted coordinates are solved for using the Newton-Raphson method for root-finding if the SetDistortion method is invoked. After calling this method, you can obtain the undistorted x/y via the UndistortedFocalPlaneX and UndistortedFocalPlaneY methods.
dx | distorted focal plane x in millimeters |
dy | distorted focal plane y in millimeters |
Review the tolerance and maximum iterations of the root- finding algorithm.
Review the handling of non-convergence of the root-finding algorithm.
Add error handling for near-zero determinant.
Reimplemented from Isis::CameraDistortionMap.
Definition at line 104 of file TaylorCameraDistortionMap.cpp.
References DistortionFunction(), DistortionFunctionJacobian(), Isis::E(), p_odtx, and p_odty.
|
virtual |
Compute distorted focal plane x/y.
Compute distorted focal plane x/y given an undistorted focal plane x/y. The distortion model is approximated by a third order Taylor series expansion of a generic function if the SetDistortion method was invoked. After calling this method, you can obtain the distorted x/y via the FocalPlaneX and FocalPlaneY methods
ux | undistorted focal plane x in millimeters |
uy | undistorted focal plane y in millimeters |
Reimplemented from Isis::CameraDistortionMap.
Definition at line 189 of file TaylorCameraDistortionMap.cpp.
References DistortionFunction(), p_odtx, and p_odty.
|
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.
|
protected |
distortion x coefficients
Definition at line 65 of file TaylorCameraDistortionMap.h.
Referenced by DistortionFunction(), DistortionFunctionJacobian(), SetDistortion(), SetFocalPlane(), and SetUndistortedFocalPlane().
|
protected |
distortion y coefficients
Definition at line 66 of file TaylorCameraDistortionMap.h.
Referenced by DistortionFunction(), DistortionFunctionJacobian(), SetDistortion(), SetFocalPlane(), and SetUndistortedFocalPlane().