Isis 3.0 Object Programmers' Reference |
Home |
Distort/undistort focal plane coordinates for New Horizons/MVIC frame sensor. More...
#include <NewHorizonsMvicFrameCameraDistortionMap.h>
Public Member Functions | |
NewHorizonsMvicFrameCameraDistortionMap (Camera *parent, vector< double > xDistortionCoeffs, vector< double > yDistortionCoeffs) | |
Camera distortion map constructor. | |
~NewHorizonsMvicFrameCameraDistortionMap () | |
Destructor. | |
virtual bool | SetFocalPlane (const double dx, const double dy) |
Testing method to output corrections in x and y at pixel centers for entire focal plane. | |
virtual bool | SetUndistortedFocalPlane (const double ux, const double uy) |
Compute distorted focal plane x/y. | |
bool | outputDeltas () |
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, double &deltay) |
Compute distortion corrections in x and y direction. | |
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) | |
double | m_focalPlaneHalf_x |
half of focal plane x and y dimensions in mm | |
double | m_focalPlaneHalf_y |
Distort/undistort focal plane coordinates for New Horizons/MVIC frame sensor.
Creates a map for adding/removing optical distortions from the focal plane of a camera for the New Horizons/MVIC frame sensor.
Definition at line 45 of file NewHorizonsMvicFrameCameraDistortionMap.h.
Isis::NewHorizonsMvicFrameCameraDistortionMap::NewHorizonsMvicFrameCameraDistortionMap | ( | Camera * | parent, |
vector< double > | xDistortionCoeffs, | ||
vector< double > | yDistortionCoeffs | ||
) |
Camera distortion map constructor.
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 |
Definition at line 54 of file NewHorizonsMvicFrameCameraDistortionMap.cpp.
References Isis::Camera::Lines(), m_focalPlaneHalf_x, m_xDistortionCoeffs, m_yDistortionCoeffs, Isis::Camera::PixelPitch(), and Isis::Camera::Samples().
Isis::NewHorizonsMvicFrameCameraDistortionMap::~NewHorizonsMvicFrameCameraDistortionMap | ( | ) |
Destructor.
Definition at line 71 of file NewHorizonsMvicFrameCameraDistortionMap.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 347 of file NewHorizonsMvicFrameCameraDistortionMap.cpp.
References m_xDistortionCoeffs, and m_yDistortionCoeffs.
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 |
Testing method to output corrections in x and y at pixel centers for entire focal plane.
Output in csv format for viewing/plotting in Excel. 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 125 of file NewHorizonsMvicFrameCameraDistortionMap.cpp.
References computeDistortionCorrections(), 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.
ux | undistorted focal plane x in millimeters |
uy | undistorted focal plane y in millimeters |
Reimplemented from Isis::CameraDistortionMap.
Definition at line 219 of file NewHorizonsMvicFrameCameraDistortionMap.cpp.
References computeDistortionCorrections(), and m_focalPlaneHalf_x.
|
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 67 of file NewHorizonsMvicFrameCameraDistortionMap.h.
Referenced by NewHorizonsMvicFrameCameraDistortionMap(), SetFocalPlane(), and SetUndistortedFocalPlane().
|
private |
distortion coefficients in x and y as determined
Definition at line 63 of file NewHorizonsMvicFrameCameraDistortionMap.h.
Referenced by computeDistortionCorrections(), and NewHorizonsMvicFrameCameraDistortionMap().
|
private |
by Keith Harrison (Interface Control Document < section 10.3.1.2)
Definition at line 64 of file NewHorizonsMvicFrameCameraDistortionMap.h.
Referenced by computeDistortionCorrections(), and NewHorizonsMvicFrameCameraDistortionMap().