python - reprojectImageTo3D() 类型错误,OpenCV Python

标签 python arrays opencv numpy

我无法在最新的 openCV 版本中使用 python 使用 reprojectImageTo3D()。 我不断收到“TypeError:disparity is not a numpy array”。当然是一个 iplImage。

disparityImg = CreateImage( (320,240), IPL_DEPTH_32F, 1)
depthMapImg = CreateImage( (320,240), IPL_DEPTH_32F, 3)
depthMapImg = reprojectImageTo3D(disparityImg, Q)

但是如果我为 depthMapImg 使用数组而不是 iplImage,我会在 reprojectImageTo3D 中得到“OpenCV 错误:断言失败(stype == CV_8UC1 || stype == CV_16SC1 || stype == CV_32SC1 || stype == CV_32FC1) ,...”

后一个错误让我认为数组和 reprojectImageTo3D() 之间的数据类型不匹配。

都不行,我该怎么办?

官方 reprojectImageTo3D() 文档在这里:http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#void%20reprojectImageTo3D%28InputArray%20disparity,%20OutputArray%20_3dImage,%20InputArray%20Q,%20bool%20handleMissingValues,%20int%20ddepth%29

最佳答案

仔细看看:它是 cv2.reprojectImageTo3D(或者,cv.Reproject...)

看来,您正在尝试将旧的(已弃用的)cv api 与较新的 cv2 混合使用。 不要!

cv 使用包装的 IplImages,cv2 使用 numpy 数组

所以,放弃旧的 cv api,因为它在未来的版本中将不被支持。 避免使用 iplimages 的任何代码

关于python - reprojectImageTo3D() 类型错误,OpenCV Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19721838/

相关文章:

python - 将时间四舍五入到微秒

python - 如何将变量从同一导入模块的 2 个实例更改为

opencv - 如何用opencv编译YOLOv3?

python - 在 Python 中截断十进制值

python - 如何创建作为服务或正常进程的可执行文件?

java arraylist 存储用户输入

php - 用多维数组中的下划线替换数组键空间

javascript - ngFor 显示对象数据

c++ - 为 OpenCv 将 wxString 转换为 std::string

opencv - 计算K均值聚类的误差