gpt4 book ai didi

python - 具有另一种数据类型的 OpenCV warpPerspective

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:46 25 4
gpt4 key购买 nike

我有一张图片和一张属于那张图片的深度图,我需要每个像素的深度(我使用的是kinect)。我想用这张图片创建一个全景 View 及其深度,所以我使用了一些 opencv 方法。尤其是这一行是目前导致问题的那一行:

result = cv2.warpPerspective(imageA, H, (imageA.shape[1] + imageB.shape[1], imageA.shape[0]))

这里的问题是,深度图不使用 8 位表示来指示像素的深度。它是一个 32 位整数。我在这里遇到的问题是,此 cv2.warpPerspective() 方法不想采用此数据类型。这是抛出的错误:

TypeError: src data type = 8 is not supported

我可以将它转换为 8 位,但那样会丢失太多信息,我无法承受在深度上损失那么多精度。不过,当我将它转换为 8 位时,我知道它可以工作。所以我猜我需要一个解决方法,但我不确定如何。

最佳答案

这不是 warpPerspective不想采用此数据类型。通常是 OpenCV,因为不支持无符号 32 位整数数组。

你可以拥有:

  • 8 位整数,有符号和无符号
  • 16 位整数,有符号和无符号
  • 32 位整数,仅带符号
  • 32 位 float
  • 64 位 float

numpy 库的数组(由 Python API 使用)在功能上更加灵活。不幸的是,当它们被传递给 OpenCV 函数时,这有时会导致相当模糊的错误。


不幸的是,使用 32 位有符号整数也是不可能的,因为 cv::remap (用于执行实际转换)似乎不支持它们。但是,它确实支持所有其他 6 种可用类型。根据深度图值的实际范围,16 位整数或浮点选项之一都可以。

关于python - 具有另一种数据类型的 OpenCV warpPerspective,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55692981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com