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