1

在 pyBullet 中,我在生成数据集方面遇到了一些困难。我想要实现的是获取相机所看到的照片:img = p.getCameraImage(224, 224, renderer=p.ER_BULLET_HARDWARE_OPENGL)

基本上:获取在 Synthetic Camera RGB 数据和 Synthetic Camera Depth Data(尤其是这个)中看到的图像,它们是您可以在左下图中看到的相机窗口。

所需的相机信息在这里

        p.resetDebugVisualizerCamera(cameraDistance=0.5, cameraYaw=yaw, cameraPitch=pitch, cameraTargetPosition=[center_x, center_y, 0.785])
        img = p.getCameraImage(224, 224, renderer=p.ER_BULLET_HARDWARE_OPENGL)
        rgbBuffer = img[2]
        depthBuffer = img[3]
        list_of_rgbs.append(rgbBuffer)
        list_of_depths.append(depthBuffer)

        rgbim = Image.fromarray(rgbBuffer)
        depim = Image.fromarray(depthBuffer)

        rgbim.save('test_img/rgbtest'+str(counter)+'.jpg')
        depim.save('test_img/depth'+str(counter)+'.tiff')

       
        counter += 1

我已经运行了以下,所以我不知道它是否与设置有关。 p.configureDebugVisualizer(p.COV_ENABLE_DEPTH_BUFFER_PREVIEW, 1)
我尝试了几种方法,因为深度部分很复杂。我不明白它是否需要因为像素颜色信息而单独处理,或者我是否需要使用project matrixesand view matrixes。我需要将其另存为,.tiff因为我遇到了一些cannot save F to png错误。我试着用比特信息玩了一下,但什么也没做。如果你问,

# depthBuffer[depthBuffer > 65535] = 65535
# im_uint16 = np.round(depthBuffer).astype(np.uint16)
# depthBuffer = im_uint16 

以下是.tiff图像的示例

在此处输入图像描述

最后,只是要说明这些深度图像一直在变化(查看所有这些图像,然后查看 RGB 并再次传递给深度图像,无论是同一图像,都显示不同的图像。我从未见过这样的东西前。

4

0 回答 0