首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将相对径向畸变函数应用于图像w/o对摄像机的了解

将相对径向畸变函数应用于图像w/o对摄像机的了解
EN

Stack Overflow用户
提问于 2021-10-15 15:31:02
回答 1查看 401关注 0票数 0

我有一个径向失真函数,它给我从0(图像中心)到相对完整的图像场(场高1)的相对失真(百分比)。例如,这个函数将给我一个高达5%的失真,在完整的相对场高度为1。

我试着用它和opencv非扭曲函数一起应用失真,但不知道如何填充矩阵。

如前所述,我只有一个源图像,不知道像焦距这样的相机参数,只是我知道失真函数。

如何在cv2中设置矩阵(src_image,矩阵,.)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-15 18:14:18

在您的情况下更容易使用的OpenCv例程是简历::重绘,而不是不失真的。

在下面,我假设你的扭曲纯粹是径向的。如果您已经将其分解为(x,y),则需要考虑类似的问题。

因此,你有一个失真函数d(r)的距离r = sqrt((x - x_c)^2 + (y - y_c)^2)像素的(x, y)与图像中心的(x_c, y_c)。该函数表示畸变图像中像素的半径r_d相对于未失真的r(r_d - r) / r = d(r),或等效于r_d = r * (1 - d(r))的变化。

如果给你一个扭曲的图像,并且想要消除失真,你需要反演上面的方程(即解析或数值求解),在感兴趣的范围内为每一个r_d求出r_d的值。然后,您可以创建两个数组,map_xmap_y,它们表示从畸变坐标到非失真坐标的映射:对于畸变图像中给定的整数像素坐标的(x_d, y_d),计算相关联的r_d = sqrt(((x_d - x_c)^2 + (y_d - y_c)^2),然后将相应的r作为r_d的函数求解方程,返回(x, y),并分配map_x[y_d, x_d] = x; map_y[y_d, x_d] = y。最后,将它们传递给cv::remap。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69587174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档