1

我在世界坐标中有一条线并将其投影到图像上(如这个问题math.stackexchange中所述)。这会在图像空间中产生一个简单的线方程,因此我可以使用 OpenCV 在图像中轻松打印它。

现在我想将这条线投影到鱼眼相机图像中。因为我有一个相应的非线性失真函数,所以我可以很容易地扭曲点。现在最简单的方法是通过这个函数从生成的线中扭曲每个点。但这会导致多个线段和未设置的像素(通常属于失真线)。

我想知道什么是获得正确扭曲线的聪明方法。也许还需要以不同的方式处理线投影?我可以更频繁地对直线进行采样(即使用亚像素坐标),但我认为这并不能保证我得到正确的解决方案。

编辑:

我的失真函数是一个简单的多项式

r(a) = k1*a+k2*a^2+k3*a^3+k4*a^4

其中a是未失真的入射光线与光轴的角度,r是失真图像中像素的半径。您可以在此处阅读更多相关信息。

4

1 回答 1

1

简单的解决方案确实是提高您的线分辨率。如果您添加更多像素(子像素更好),那么您将在失真后获得更好看的图像。

我认为更正确的方法是向后映射。找到从失真图像中的每个像素(正方形,整数)到未失真图像中的像素(四边形,实数)的映射。这将确保您的扭曲线上不会有任何孔洞。

在此处输入图像描述

于 2016-06-09T09:06:34.603 回答