使用Python读取摄像头图像在webots中运行速度非常慢

使用Python读取摄像头图像在webots中运行速度非常慢,python,webots,Python,Webots,我尝试使用python阅读webots相机图像,并通过ros主题发布它。但当我这样写的时候: Img=camera.getImageArray()在主循环中,模拟世界将非常缓慢,速度类似于0.1x。 我的程序是这样的: from controller import Robot, Camera robot = Robot() timestep = int(robot.getBasicTimeStep()) camera = Camera('camera') camera.enable(100) w

我尝试使用python阅读webots相机图像,并通过ros主题发布它。但当我这样写的时候: Img=camera.getImageArray()在主循环中,模拟世界将非常缓慢,速度类似于0.1x。 我的程序是这样的:

from controller import Robot, Camera
robot = Robot()
timestep = int(robot.getBasicTimeStep())
camera = Camera('camera')
camera.enable(100)
while robot.setp(timestep) != -1:
    img = camera.getImageArray()
    pass

如果我从主循环中删除此代码“img=camera.getImageArray()”,则模拟速度将增加到正常速度。我的webots版本是webots R2020b-rev1,操作系统是Windows10 64位。我也尝试在Ubuntu16.04lts中运行此代码,这是相同的。有人能帮我解决这个问题吗?

你应该使用
getImage()
方法,而不是
getImageArray()
。“在Python中获取相机图像的另一种方法是使用getImageArray方法,该方法返回一个列表。此三维列表可直接用于访问RGB像素值。但是,此方法的运行速度明显慢于getImage方法。”


此外,最新版本的Webots是R2021a,运行速度可能比R2020b-rev1快。

您应该使用
getImage()
方法,而不是
getImageArray()
。“在Python中获取相机图像的另一种方法是使用getImageArray方法,该方法返回一个列表。此三维列表可直接用于访问RGB像素值。但是,此方法的运行速度明显慢于getImage方法。”


另外,最新版本的Webots是R2021a,运行速度可能比R2020b-rev1快。

顺便说一句,我将相机图像宽度设置为640,高度设置为480。顺便说一句,我将相机图像宽度设置为640,高度设置为480。非常感谢,我尝试使用getImage()并将速度提高到1.0x。我试着写一个额外的控制器,把相机图像发布给ros。因此,现在我应该将图像列表转换为opencvformat。非常感谢,我尝试使用getImage()并将速度提高到1.0x。我试着写一个额外的控制器,把相机图像发布给ros。现在我应该将图像列表转换为OpenCVF格式。