warpPerspective和warpAffine不适用于大图像,高度> 32k

时间:2013-07-08 19:42:34

标签: opencv

我试图扭曲16位卫星图像。我有全色图像。我的参考图像是8192x81920像素,红色通道图像是4096x40960像素。当我使用warpAffinewarpPerspective时,行值大于32767的像素不会正确扭曲。这是一个简单的错误吗?我可以通过改变变量类型来纠正它吗?

我已检查warpPerspectiveInvoker功能,但看不到简单的修复。

2 个答案:

答案 0 :(得分:3)

这在OpenCV中似乎是open bugcv::warpPerspective()在内部使用short生成失真贴图。 32767是short中的最大可表示值,因此任何大于此值的值都会导致问题。

您可以尝试攻击warpPerspectiveInvoker并将short实例替换为更大的内容,例如int,但我不能保证这会起作用。不过,这可能值得一试。

答案 1 :(得分:3)

目前我将图像划分为32k大小的孔,并扭曲每个单独的图块。 目前我的数据结果似乎合理。