gpt4 book ai didi

OpenCV 如何将相机失真应用于图像

转载 作者:太空宇宙 更新时间:2023-11-03 23:05:10 28 4
gpt4 key购买 nike

我有一个渲染图像。我想对从 opencv 获得的图像应用径向和切向失真系数。即使有 undistort 功能,也没有 distort 功能。我如何使用畸变系数来扭曲我的图像?

enter image description here

最佳答案

我也在寻找相同类型的功能。我找不到,所以我自己实现了。这是 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

关于OpenCV 如何将相机失真应用于图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58127381/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com