1

我无法在最新的 openCV 版本中使用 python 使用 reprojectImageTo3D() 。我不断收到“TypeError:差异不是 numpy 数组”。当然是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%20d深度%29

4

1 回答 1

1

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

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

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

所以,丢弃旧的 cv api,因为它不会在未来的版本中得到支持。避免使用任何代码,即使用 iplimages

于 2013-11-01T08:44:06.640 回答