58 for (
int iter = 0; iter < 5; iter++)
61 const float k_radial = 1 + k1 * r_2 + k2 * r_2 * r_2;
62 const float delta_x = 2 * p1*x*y + p2 * (r_2 + 2*x*x);
63 const float delta_y = 2 * p2*x*y + p1 * (r_2 + 2*y*y);
64 x = (desPnt[0] - delta_x) / k_radial;
65 y = (desPnt[1] - delta_y) / k_radial;
84 float distx = x + x*(k1*r_2 + k2*r_2*r_2) + (2*p1*x*y + p2*(r_2 + 2*x*x));
85 float disty = y + y*(k1*r_2 + k2*r_2*r_2) + (2*p2*x*y + p1*(r_2 + 2*y*y));
92 const float diffx = old_src[0] - distx;
93 const float diffy = old_src[1] - disty;
94 if (fabs(diffx) > .1 || fabs(diffy) > .1)
96 std::cout <<
"undistort sanity check error: diffx =" << diffx <<
" , diffy = " << diffy;
187 float in_dPrincipalX,
float in_dPrincipalY,
188 float in_Dist[4],
float ImageSizeX,
float ImageSizeY)
214 m_mapX = cvCreateMat(ImageSizeY, ImageSizeX, CV_32FC1);
215 m_mapY = cvCreateMat(ImageSizeY, ImageSizeX, CV_32FC1);
void UndistortImage(IplImage *src, IplImage *dst)
~UndistortCameraImage() override
float m_intrinsicMatrixData[9]
void UndistortImageFast(IplImage *src, IplImage *dst=nullptr)
CvMat * m_DistortionCoeffs
mitk::Point2D UndistortPixel(const mitk::Point2D &src)
USAGE ///.
float m_distortionMatrixData[4]
void SetUndistortImageFastInfo(float in_dF1, float in_dF2, float in_dPrincipalX, float in_dPrincipalY, float in_Dist[4], float ImageSizeX, float ImageSizeY)