我试图扭曲16位卫星图像。我有全色图像。我的参考图像是8192x81920像素,红色通道图像是4096x40960像素。当我使用warpAffine
或warpPerspective
时,行值大于32767的像素不会正确扭曲。这是一个简单的错误吗?我可以通过改变变量类型来纠正它吗?
我已检查warpPerspectiveInvoker
功能,但看不到简单的修复。
答案 0 :(得分:3)
这在OpenCV中似乎是open bug。 cv::warpPerspective()
在内部使用short
生成失真贴图。 32767是short
中的最大可表示值,因此任何大于此值的值都会导致问题。
您可以尝试攻击warpPerspectiveInvoker
并将short
实例替换为更大的内容,例如int
,但我不能保证这会起作用。不过,这可能值得一试。
答案 1 :(得分:3)
目前我将图像划分为32k大小的孔,并扭曲每个单独的图块。 目前我的数据结果似乎合理。