在 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 matrixes
and 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 并再次传递给深度图像,无论是同一图像,都显示不同的图像。我从未见过这样的东西前。