我有一个渲染图像。我想将径向和切向畸变系数应用于从 opencv 获得的图像。即使有不失真功能,也没有失真功能。如何使用畸变系数来扭曲图像?
我也在寻找相同类型的功能。我找不到,所以我自己实现了。这是 C++ 代码。
首先,您需要使用焦距和中心标准化图像点
rpt(0) = (pt_x - cx) / fx
rpt(1) = (pt_y - cy) / fy
然后扭曲归一化图像点
double x = rpt(0), y = rpt(1);
//determining the radial distortion
double r2 = x*x + y*y;
double icdist = 1 / (1 - ((D.at<double>(4) * r2 + D.at<double>(1))*r2 + D.at<double>(0))*r2);
//determining the tangential distortion
double deltaX = 2 * D.at<double>(2) * x*y + D.at<double>(3) * (r2 + 2 * x*x);
double deltaY = D.at<double>(2) * (r2 + 2 * y*y) + 2 * D.at<double>(3) * x*y;
x = (x + deltaX)*icdist;
y = (y + deltaY)*icdist;
然后您可以使用投影中心和焦距平移和缩放该点:
x = x * fx + cx
y = y * fy + cy
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)