USGS

Isis 3.0 Developer's Reference (API)

Home

Isis::CameraDistortionMap Class Reference

Distort/undistort focal plane coordinates. More...

#include <CameraDistortionMap.h>

Inherited by Isis::ApolloMetricDistortionMap, Isis::DawnFcDistortionMap, Isis::LoHighDistortionMap, Isis::LoMediumDistortionMap, Isis::LroNarrowAngleDistortionMap, Isis::LroWideAngleCameraDistortionMap, Isis::MarciDistortionMap, Isis::MocWideAngleDistortionMap, Isis::RadarSlantRangeMap, Isis::RadialDistortionMap, Isis::ReseauDistortionMap, Isis::TaylorCameraDistortionMap, Isis::ThemisIrDistortionMap, and Isis::ThemisVisDistortionMap.

List of all members.

Public Member Functions

 CameraDistortionMap (Camera *parent, double zDirection=1.0)
 Camera distortion map constructor.
void SetDistortion (const int naifIkCode)
 Load distortion coefficients.
virtual ~CameraDistortionMap ()
 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.
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

Camerap_camera
double p_focalPlaneX
double p_focalPlaneY
double p_undistortedFocalPlaneX
double p_undistortedFocalPlaneY
double p_zDirection
std::vector< double > p_odk

Detailed Description

Distort/undistort focal plane coordinates.

Creates a map for adding/removing optical distortions from the focal plane of a camera.

See also:
Camera
Author:
2005-02-01 Jeff Anderson
History:
2008-02-05 Jeff Anderson - Modified to allow for variable focal length
History:
2008-02-21 Steven Lambright - Fixed a problem that resulted in infinities and NaNs

Constructor & Destructor Documentation

Isis::CameraDistortionMap::CameraDistortionMap ( Camera parent,
double  zDirection = 1.0 
)

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.

Parameters:
parent the parent camera that will use this distortion map
zDirection the direction of the focal plane Z-axis (either 1 or -1)
virtual Isis::CameraDistortionMap::~CameraDistortionMap (  )  [inline, virtual]

Destructor.


Member Function Documentation

double Isis::CameraDistortionMap::FocalPlaneX (  )  const [inline]
double Isis::CameraDistortionMap::FocalPlaneY (  )  const [inline]
void Isis::CameraDistortionMap::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:

 INSxxxxx_OD_K = ( coef1, coef2, ..., coefN)

 where xxxxx is the instrument code (always a negative number)

These coefficient will be used to convert from focal plane x,y to undistorted x,y as follows (add equation here)

Parameters:
naifIkCode Code to search for in instrument kernel

Reimplemented in Isis::LoHighDistortionMap, Isis::LoMediumDistortionMap, Isis::LroNarrowAngleDistortionMap, and Isis::TaylorCameraDistortionMap.

Referenced by Isis::CTXCamera::CTXCamera(), and Isis::HiriseCamera::HiriseCamera().

bool Isis::CameraDistortionMap::SetFocalPlane ( const double  dx,
const double  dy 
) [virtual]

Compute undistorted focal plane x/y.

Compute undistorted focal plane x/y given a distorted focal plane x/y. This virtual method can be used to apply various techniques for removing optical distortion in the focal plane of a camera. The default implementation uses a polynomial distortion if the SetDistortion method is invoked. After calling this method, you can obtain the undistorted x/y via the UndistortedFocalPlaneX and UndistortedFocalPlaneY methods

Parameters:
dx distorted focal plane x in millimeters
dy distorted focal plane y in millimeters
Returns:
if the conversion was successful
See also:
SetDistortion

Reimplemented in Isis::ApolloMetricDistortionMap, Isis::RadarSlantRangeMap, Isis::RadialDistortionMap, Isis::ReseauDistortionMap, Isis::DawnFcDistortionMap, Isis::LoHighDistortionMap, Isis::LoMediumDistortionMap, Isis::LroNarrowAngleDistortionMap, Isis::LroWideAngleCameraDistortionMap, Isis::TaylorCameraDistortionMap, Isis::MocWideAngleDistortionMap, Isis::MarciDistortionMap, Isis::ThemisIrDistortionMap, and Isis::ThemisVisDistortionMap.

Referenced by Isis::Camera::SetImage().

bool Isis::CameraDistortionMap::SetUndistortedFocalPlane ( const double  ux,
const double  uy 
) [virtual]

Compute distorted focal plane x/y.

Compute distorted focal plane x/y given an undistorted focal plane x/y. This virtual method is used to apply various techniques for adding optical distortion in the focal plane of a camera. The default implementation of this virtual method uses a polynomial distortion if the SetDistortion method was invoked. After calling this method, you can obtain the distorted x/y via the FocalPlaneX and FocalPlaneY methods

Parameters:
ux undistorted focal plane x in millimeters
uy undistorted focal plane y in millimeters
Returns:
if the conversion was successful
See also:
SetDistortion

Reimplemented in Isis::ApolloMetricDistortionMap, Isis::RadarSlantRangeMap, Isis::RadialDistortionMap, Isis::ReseauDistortionMap, Isis::DawnFcDistortionMap, Isis::LoHighDistortionMap, Isis::LoMediumDistortionMap, Isis::LroNarrowAngleDistortionMap, Isis::LroWideAngleCameraDistortionMap, Isis::TaylorCameraDistortionMap, Isis::MocWideAngleDistortionMap, Isis::MarciDistortionMap, Isis::ThemisIrDistortionMap, and Isis::ThemisVisDistortionMap.

Referenced by Isis::LineScanCameraGroundMap::FindFocalPlane(), and Isis::Camera::SetRightAscensionDeclination().

double Isis::CameraDistortionMap::UndistortedFocalPlaneX (  )  const [inline]

Return undistorted focal plane x.

References p_undistortedFocalPlaneX.

Referenced by Isis::ControlPoint::ComputeApriori(), and Isis::Camera::SetImage().

double Isis::CameraDistortionMap::UndistortedFocalPlaneY (  )  const [inline]

Return undistorted focal plane y.

References p_undistortedFocalPlaneY.

Referenced by Isis::ControlPoint::ComputeApriori(), and Isis::Camera::SetImage().

double Isis::CameraDistortionMap::UndistortedFocalPlaneZ (  )  const [inline]

Member Data Documentation

std::vector<double> Isis::CameraDistortionMap::p_odk [protected]

The documentation for this class was generated from the following files: