视差图阵列中的点云

2024-04-24 21:36:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须从一组图像重建一个三维物体。假设我已经对所有的图像进行了相机校准(从示例10图像中,所有的图像都以不同的角度显示对象)。我创建了一个视差贴图数组(例如第一个带有图像1和2的数组,第二个带有图像2和3的数组,依此类推),然后我必须创建一个包含所有视差贴图的点云,我该怎么做呢?下面是我用来处理2个图像的代码。你知道吗


stereo = cv2.StereoSGBM_create(minDisparity= min_disp,
    numDisparities = num_disp,
    blockSize = 5,
    uniquenessRatio = 5,
    speckleWindowSize = 5,
    speckleRange = 5,
    disp12MaxDiff = 1,
    P1 = 8*3*win_size**2,#8*3*win_size**2,
    P2 =32*3*win_size**2) #32*3*win_size**2)
#Compute disparity map
print ("\nComputing the disparity  map...")
disparity_map = stereo.compute(img_1_downsampled, img_2_downsampled)

Q = np.float32([[1,0,0,-w/2.0],
                [0,-1,0,h/2.0],
                [0,0,0,-focal_length],
                [0,0,1,0]])

points_3D = cv2.reprojectImageTo3D(disparity_map, Q)

Tags: 图像示例mapimgsize数组cv2win