【问题标题】:OpenCV - Python Assertion Error : SAD algorithm - Stereo Camera Disparity Map CalculationOpenCV - Python 断言错误:SAD 算法 - 立体相机视差图计算
【发布时间】:2018-10-14 16:55:21
【问题描述】:

我想使用 SAD 算法计算视差图,当我运行代码时,我收到错误消息: 返回 stereo.compute(left_image, right_image).astype(np.float32) / 16.0 cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv\modules\calib3d\src\stereosgbm.cpp:2156: error: (-215:Assertion failed) left.size() == right .size() && left.type() == right.type() && left.depth() == CV_8U in function 'cv::StereoSGBMImpl::compute'

我的代码是:

left_image = cv2.imread('left.jpg')
right_image = cv2.imread('right.jpg')

def calc_disparity(left_image, right_image):
    window_size = 3
    min_disp = 1
    num_disp = 16
    stereo = cv2.StereoSGBM_create(
        minDisparity=min_disp,
        numDisparities=num_disp,
        blockSize = 5,
        # SADWindowSize=window_size,
        uniquenessRatio=10,
        speckleWindowSize=100,
        speckleRange=32,
        disp12MaxDiff=1,
        P1=8*3*window_size**2,
        P2=32*3*window_size**2,
        # fullDP=False

    )
    return stereo.compute(left_image, right_image).astype(np.float32) / 16.0

【问题讨论】:

    标签: python c++ opencv


    【解决方案1】:

    此断言失败的可能原因是:

    • 左右图片大小不一样
    • 左右图像的类型不同
    • 左图深度类型错误(需要CV_8U)

    请确保您输入的图片符合上述条件(相同大小和类型)。

    【讨论】:

      猜你喜欢
      • 2018-04-29
      • 2023-03-23
      • 2015-02-27
      • 2013-05-23
      • 2012-12-25
      • 2015-03-29
      • 2013-06-10
      • 2010-10-24
      • 2020-01-26
      相关资源
      最近更新 更多