Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有另一个数据类型的OpenCV透视图_Python_Numpy_Opencv - Fatal编程技术网

Python 具有另一个数据类型的OpenCV透视图

Python 具有另一个数据类型的OpenCV透视图,python,numpy,opencv,Python,Numpy,Opencv,我有一张图片和一张属于该图片的深度贴图,我需要有每个像素的深度(我使用的是kinect)。我想用这张图片和它的深度创建一个全景视图,所以我使用了一些opencv方法。尤其是这条线路,目前正引起问题: result = cv2.warpPerspective(imageA, H, (imageA.shape[1] + imageB.shape[1], imageA.shape[0])) 这里的问题是,depthmap不使用8位表示来指示像素的深度。它是一个32位整数。我在这里遇到的问题是,这个c

我有一张图片和一张属于该图片的深度贴图,我需要有每个像素的深度(我使用的是kinect)。我想用这张图片和它的深度创建一个全景视图,所以我使用了一些opencv方法。尤其是这条线路,目前正引起问题:

result = cv2.warpPerspective(imageA, H, (imageA.shape[1] + imageB.shape[1], imageA.shape[0]))
这里的问题是,depthmap不使用8位表示来指示像素的深度。它是一个32位整数。我在这里遇到的问题是,这个
cv2.warpPerspective()
方法不希望采用这种数据类型。这是引发的错误:

TypeError:不支持src数据类型=8

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

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

你可以有:

  • 8位整数,有符号和无符号
  • 16位整数,有符号和无符号
  • 32位整数,仅带符号
  • 32位浮点
  • 64位浮点
numpy
库的数组(由pythonapi使用)在功能上更加灵活。不幸的是,当它们被传递到OpenCV函数时,这有时会导致相当模糊的错误


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

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

你可以有:

  • 8位整数,有符号和无符号
  • 16位整数,有符号和无符号
  • 32位整数,仅带符号
  • 32位浮点
  • 64位浮点
numpy
库的数组(由pythonapi使用)在功能上更加灵活。不幸的是,当它们被传递到OpenCV函数时,这有时会导致相当模糊的错误



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

我现在使用了几种不同的方法,没有一种是完美的,但我会做到的,谢谢你提供的信息。我现在使用了几种不同的方法,没有一种是完美的,但我会做到的,谢谢你提供的信息。