从 Carla 接收相机数据时无法通过 cv2.imshow() 呈现连续图像

Exa*_*sor 5 python opencv image carla

我正在从https://pythonprogramming.net/control-camera-sensor-self-driven-autonomous-cars-carla-python/学习该程序学习该程序 ,但我只能通过 cv2.imshow() 获取静态图像,而从Carla\xef\xbc\x8can接收carame数据,图像处理相关代码如下:

\n
def process_img(image):\n    i = np.array(image.raw_data)\n    i2 = i.reshape((IM_HEIGHT, IM_WIDTH, 4))\n    i3 = i2[:, :, :3]\n    cv2.imshow("", i3)\n    cv2.waitKey(1)\n    return i3/255.0\n
Run Code Online (Sandbox Code Playgroud)\n

while cv2.waitKey(1),我只能得到一张空白图像,所以我选择更大的数字,如cv2.waitKey(30),那么我只能得到相机的第一帧,并且图像不会更新,相关软件或软件包的版本如下:ubuntu 18.04、python 3.6、Carla 0.9.9、opencv-python 4.2.0.34、cuda10.0、cudnn 7.6.5 for cuda 10.0、tensorflow 1.14

\n

卡拉图像示例

\n

我真的很困惑,希望得到帮助,任何答案都会受到赞赏

\n

小智 0

  1. 您创建一个位置来存储来自 CARLA 模拟器的图像 - 队列
  2. 聆听摄像头并排队图像
  3. 在无限循环中,从队列中获取图像并显示它(如果使用 gui,最好将循环移动到单独的线程)

使用此代码

import queue
self.image_queue = queue.Queue()
camera.listen(self.image_queue.put)
while true:
    image_carla = self.image_queue.get()
    self.process_img(image_carla)
Run Code Online (Sandbox Code Playgroud)