我有一个扭曲的图像,并且需要校准数据来解决它。我正在使用openCv,但不能使用undistort函数,因为我对失真系数的数据是2参数模型。 与相机制造商交谈,我有计算失真所需的数学。它看起来像这样:
//calculate the radius
Point2d pr; //distorted point/pixel
double dx = (pr.x - ppx);
double dy = (a * pr.y - a * ppy);
//calculate the scale factor
double s = 1 + (pow(vrx, 2) + pow(vry, 4));
//correct the distortion per point
Point2d pc; //undistorted point/pixel
pc.x = ((s * dx) + ppx);
pc.y= ((s * dy) + ppy) / a;
一切都很好。现在,如何通过openCv Mat图像运行它并从产品中创建新图像?
我是否应该使用Mat,循环创建每个行/列条目的Point2d,然后将结果点转换回Mat?或者有更好的方法吗?
谢谢大家。