Python 类型断言失败。函数中的type==CV|8UC1 | stype==CV|16SC1 | stype==CV|32SC1 | stype==CV|32FC1

Python 类型断言失败。函数中的type==CV|8UC1 | stype==CV|16SC1 | stype==CV|32SC1 | stype==CV|32FC1,python,opencv,Python,Opencv,我在opencv 4.3.0中有以下代码: import cv2 import numpy as np img = cv2.imread("disp.png") persp_trans = np.random.rand(4,4) print(cv2.reprojectImageTo3D(img, persp_trans)) 我得到了一个错误: <class 'numpy.ndarray'> <class 'numpy.ndarray'> Trac

我在opencv 4.3.0中有以下代码:

import cv2
import numpy as np

img = cv2.imread("disp.png")
persp_trans = np.random.rand(4,4)
print(cv2.reprojectImageTo3D(img, persp_trans))

我得到了一个错误:

<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
Traceback (most recent call last):
  File "disp_3d.py", line 26, in <module>
    print(cv2.reprojectImageTo3D(img, persp_trans))
cv2.error: OpenCV(4.3.0) /Users/travis/build/skvark/opencv-python/opencv/modules/calib3d/src/calibration.cpp:2990: error: (-215:Assertion failed) stype == CV_8UC1 || stype == CV_16SC1 || stype == CV_32SC1 || stype == CV_32FC1 in function 'reprojectImageTo3D'


回溯(最近一次呼叫最后一次):
文件“disp_3d.py”,第26行,在
打印(cv2.重新投影到3D(img、persp_trans))
cv2.error:OpenCV(4.3.0)/Users/travis/build/skvark/OpenCV python/OpenCV/modules/calib3d/src/calibration.cpp:2990:error:(-215:Assertion failed)stype==CV|8UC1 | stype==CV|16SC1 | stype==CV 32SC1 | stype==CV 32SC1 | stype==CV 32FC1在函数“reprojectto3d”中

这是为什么?如何解决这一问题?

您可以看到以下答案:

您可能需要首先使用以下方法对图像进行灰度化:

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

请提供预期的价格。请包括所有符号定义(您至少缺少两个
import
语句)和一个公共域输入文件。还要追踪你的论点类型;与文档化的需求进行比较。代码对您有用吗?断言声明源类型必须是单通道映像,因此您可能会将一个3通道映像传递给它。