首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenCV如何将相机失真应用于图像

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

Stack Overflow用户
提问于 2019-09-27 11:20:04
回答 1查看 873关注 0票数 2

我有一个渲染的图像。我想将径向和切向失真系数应用于我从opencv获得的图像。即使有非失真函数,也没有失真函数。如何使用失真系数对图像进行失真?

EN

Stack Overflow用户

发布于 2019-09-27 16:57:08

我也在寻找同样类型的功能。我找不到它,所以我自己实现了它。这是C++代码。

首先,您需要使用焦距和中心对图像点进行归一化

代码语言:javascript
运行
复制
rpt(0) = (pt_x - cx) / fx
rpt(1) = (pt_y - cy) / fy

然后对归一化的图像点进行扭曲

代码语言:javascript
运行
复制
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;

然后,可以使用投影中心和焦距平移和缩放点:

代码语言:javascript
运行
复制
x = x * fx + cx
y = y * fy + cy
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58127381

复制
相关文章

相似问题

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