我无法在最新的 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/