Isis 3.0 Object Programmers' Reference |
Home |
Distort/undistort focal plane coordinates for New Horizons/MVIC. More...
#include <NewHorizonsMvicTdiCameraDistortionMap.h>
Public Member Functions | |
NewHorizonsMvicTdiCameraDistortionMap (Camera *parent, vector< double > xDistortionCoeffs, vector< double > yDistortionCoeffs, vector< double > residualColDistCoeffs, vector< double > residualRowDistCoeffs) | |
Camera distortion map constructor. | |
~NewHorizonsMvicTdiCameraDistortionMap () | |
Destructor. | |
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 Member Functions | |
bool | computeDistortionCorrections (const double xscaled, const double yscaled, double &deltax) |
Compute distortion corrections in x and y direction. | |
void | computeResidualDistortionCorrections (const double dx, double &residualDeltax, double &residualDeltay) |
Compute residual distortion corrections in row and column direction TODO: Implementati plete. | |
Private Attributes | |
std::vector< double > | m_xDistortionCoeffs |
distortion coefficients in x and y as determined | |
std::vector< double > | m_yDistortionCoeffs |
by Keith Harrison (Interface Control Document < section 10.3.1.2) | |
vector< double > | m_residualColDistCoeffs |
residual distortion coefficients as determined | |
vector< double > | m_residualRowDistCoeffs |
by Jason Cook, SWRI (MVIC Distortion) | |
double | m_focalPlaneHalf_x |
half of focal plane x and y dimensions in mm | |
Distort/undistort focal plane coordinates for New Horizons/MVIC.
Creates a map for adding/removing optical distortions from the focal plane of a camera for the New Horizons/MVIC instrument.
Definition at line 45 of file NewHorizonsMvicTdiCameraDistortionMap.h.
Isis::NewHorizonsMvicTdiCameraDistortionMap::NewHorizonsMvicTdiCameraDistortionMap | ( | Camera * | parent, |
vector< double > | xDistortionCoeffs, | ||
vector< double > | yDistortionCoeffs, | ||
vector< double > | residualColDistCoeffs, | ||
vector< double > | residualRowDistCoeffs | ||
) |
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) |
xDistortionCoeffs | distortion coefficients in x |
yDistortionCoeffs | distortion coefficients in y |
residualColDistCoeffs | |
residualRowDistCoeffs |
Definition at line 58 of file NewHorizonsMvicTdiCameraDistortionMap.cpp.
References m_focalPlaneHalf_x, m_residualColDistCoeffs, m_residualRowDistCoeffs, m_xDistortionCoeffs, m_yDistortionCoeffs, Isis::Camera::PixelPitch(), and Isis::Camera::Samples().
Isis::NewHorizonsMvicTdiCameraDistortionMap::~NewHorizonsMvicTdiCameraDistortionMap | ( | ) |
Destructor.
Definition at line 79 of file NewHorizonsMvicTdiCameraDistortionMap.cpp.
|
private |
Compute distortion corrections in x and y direction.
For Legendre Polynomials, see ...
http://mathworld.wolfram.com/LegendrePolynomial.html http://www.boost.org/doc/libs/1_36_0/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html
xscaled | focal plane x scaled to range of 1- to 1 for Legendre Polynomials |
yscaled | focal plane y scaled to range of 1- to 1 for Legendre Polynomials |
deltax | focal plane distortion correction to x in millimeters |
deltay | focal plane distortion correction to y in millimeters |
Definition at line 246 of file NewHorizonsMvicTdiCameraDistortionMap.cpp.
References m_xDistortionCoeffs.
Referenced by SetFocalPlane(), and SetUndistortedFocalPlane().
|
private |
Compute residual distortion corrections in row and column direction TODO: Implementati plete.
dx | |
dy | |
residualDeltax | |
residualDeltay |
Definition at line 309 of file NewHorizonsMvicTdiCameraDistortionMap.cpp.
References m_residualColDistCoeffs, m_residualRowDistCoeffs, and Isis::Camera::PixelPitch().
Referenced by SetFocalPlane(), and SetUndistortedFocalPlane().
|
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.
|
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(), Isis::LroWideAngleCameraDistortionMap::LroWideAngleCameraDistortionMap(), Isis::LoHighDistortionMap::SetDistortion(), and Isis::LoMediumDistortionMap::SetDistortion().
|
virtual |
Compute undistorted focal plane x/y.
Compute undistorted focal plane x given a distorted focal plane x
TODO: Modify this - Distortion in line direction currently not considered (MVIC TDI is treated as line scan sensor)
In the event of any failure, undistorted focal plane values are set equal to the raw (distorted) values
dx | distorted focal plane x in millimeters |
dy | distorted focal plane y in millimeters |
Reimplemented from Isis::CameraDistortionMap.
Definition at line 100 of file NewHorizonsMvicTdiCameraDistortionMap.cpp.
References computeDistortionCorrections(), computeResidualDistortionCorrections(), and m_focalPlaneHalf_x.
|
virtual |
Compute distorted focal plane x/y.
Compute distorted focal plane x/y given an undistorted focal plane x/y.
This is an iterative procedure as computing the inverse of the distortion equations used by New Horizons MVIC is difficult.
ux | undistorted focal plane x in millimeters |
uy | undistorted focal plane y in millimeters |
Reimplemented from Isis::CameraDistortionMap.
Definition at line 159 of file NewHorizonsMvicTdiCameraDistortionMap.cpp.
References _FILEINFO_, computeDistortionCorrections(), computeResidualDistortionCorrections(), m_focalPlaneHalf_x, and Isis::IException::Programmer.
|
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.
|
private |
half of focal plane x and y dimensions in mm
Definition at line 74 of file NewHorizonsMvicTdiCameraDistortionMap.h.
Referenced by NewHorizonsMvicTdiCameraDistortionMap(), SetFocalPlane(), and SetUndistortedFocalPlane().
|
private |
residual distortion coefficients as determined
Definition at line 71 of file NewHorizonsMvicTdiCameraDistortionMap.h.
Referenced by computeResidualDistortionCorrections(), and NewHorizonsMvicTdiCameraDistortionMap().
|
private |
by Jason Cook, SWRI (MVIC Distortion)
Definition at line 72 of file NewHorizonsMvicTdiCameraDistortionMap.h.
Referenced by computeResidualDistortionCorrections(), and NewHorizonsMvicTdiCameraDistortionMap().
|
private |
distortion coefficients in x and y as determined
Definition at line 67 of file NewHorizonsMvicTdiCameraDistortionMap.h.
Referenced by computeDistortionCorrections(), and NewHorizonsMvicTdiCameraDistortionMap().
|
private |
by Keith Harrison (Interface Control Document < section 10.3.1.2)
Definition at line 68 of file NewHorizonsMvicTdiCameraDistortionMap.h.
Referenced by NewHorizonsMvicTdiCameraDistortionMap().