【问题标题】:reprojectImageTo3D() typeError, OpenCV PythonreprojectImageTo3D() 类型错误,OpenCV Python
【发布时间】:2013-11-01 06:23:50
【问题描述】:

我无法在最新的 openCV 版本中使用 python 使用 reprojectImageTo3D()。 我不断收到“TypeError:disparity 不是 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%20ddepth%29

【问题讨论】:

    标签: python arrays opencv numpy


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 啊,对了!谢谢。现在我想知道这些函数是否要求一个元组列表,或者一个直接向上的数组,或者什么。我永远不清楚函数需要什么形式,以及哪个索引对应于行、列等。对于遇到原始问题的其他人,我还从 FindStereoCorrespondenceBM() 获取了 iplImage 输出,该输出已被弃用,我不能'不明白为什么输出与 cv2.reprojectImageTo3D() 不兼容。使用两者的 cv2 版本。
    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 2015-10-26
    • 1970-01-01
    • 2016-07-02
    相关资源
    最近更新 更多