52 if (p_camera->
PixelPitch() == 0.013) m_numDistCoef = 3;
53 else m_numDistCoef = 4;
56 QString naifXKey =
"INS" +
toString(naifIkCode) +
"_DISTORTION_COEF_X";
57 QString naifYKey =
"INS" +
toString(naifIkCode) +
"_DISTORTION_COEF_Y";
58 for (
int i=0; i < m_numDistCoef; i++) {
59 m_distCoefX[i] = p_camera->
getDouble(naifXKey,i);
60 m_distCoefY[i] = p_camera->
getDouble(naifYKey,i);
64 naifXKey =
"INS" +
toString(naifIkCode) +
"_BORESIGHT";
65 m_boreX = p_camera->
getDouble(naifXKey, 0);
66 m_boreY = p_camera->
getDouble(naifXKey, 1);
95 if (m_numDistCoef == 3) {
96 p_undistortedFocalPlaneX =
97 m_boreX + m_distCoefX[0] + dy*(m_distCoefX[1] + dy*m_distCoefX[2]) + dx;
98 p_undistortedFocalPlaneY =
99 m_boreY + m_distCoefY[0] + dy*(m_distCoefY[1] + dy*m_distCoefY[2]) + dy;
102 p_undistortedFocalPlaneX = m_boreX +
103 m_distCoefX[0] + dy*(m_distCoefX[1] + dy*(m_distCoefX[2] + dy*m_distCoefX[3])) + dx;
104 p_undistortedFocalPlaneY = m_boreY +
105 m_distCoefY[0] + dy*(m_distCoefY[1] + dy*(m_distCoefY[2] + dy*m_distCoefY[3])) + dy;
123 p_undistortedFocalPlaneX = ux;
124 p_undistortedFocalPlaneY = uy;
128 if (m_numDistCoef == 3) {
133 B = 1.0 + m_distCoefY[1];
134 C = m_distCoefY[0] +m_boreY - uy;
138 if (roots.size() == 0)
return false;
139 else if (roots.size() == 1)
140 p_focalPlaneY = roots[0];
142 p_focalPlaneY = fabs(uy - roots[0]) < fabs(uy - roots[1]) ? roots[0] : roots[1];
146 (m_boreX + m_distCoefX[0] + p_focalPlaneY*(m_distCoefX[1] + p_focalPlaneY*m_distCoefX[2]));
154 a = m_distCoefY[2] / m_distCoefY[3];
155 b = (1.0 + m_distCoefY[1]) / m_distCoefY[3];
156 c = (m_distCoefY[0] + m_boreY - uy) / m_distCoefY[3];
160 if (roots.size() == 1) {
161 p_focalPlaneY = roots[0];
167 for (
int i=0;i<roots.size();i++)
168 delta << fabs(roots[i]-uy);
170 if ( roots.size() == 3)
171 p_focalPlaneY = delta[0] < delta[1] ?
172 (delta[0] < delta[2] ? roots[0]:roots[2]) :
173 (delta[1] < delta[2] ? roots[1]:roots[2]) ;
175 p_focalPlaneY = delta[0] < delta[1] ? roots[0]:roots[1] ;
179 p_focalPlaneX = ux - (m_boreX +m_distCoefX[0] +
180 p_focalPlaneY*(m_distCoefX[1] +
181 p_focalPlaneY*(m_distCoefX[2] +
182 p_focalPlaneY* m_distCoefX[3])));