簡體   English   中英

如何將 Carla 的相機數據保存到我的磁盤?

[英]How do I save the camera Data of Carla to my disk?

我正在使用 Carla 模擬器,並希望為語義分割制作我自己的數據集。 但問題是我無法將它們保存在我的電腦上。 我有一台相機和所有東西,但我無法將它保存到磁盤上。 我正在使用 Jupyter Notebooks,而 kernel 剛剛關閉了自己。 最后,我想要我的相機的 png 數據。 問題在最后(image.save_to_disk)

import glob
import os
import sys
import random
from turtle import width
import carla
from matplotlib import image
import tensorflow as tf
import cv2
import numpy as np
import time
import argparse
import imutils

print("")
# Laden von Carla,Library,Map, erstellen des Spectators
client = carla.Client('localhost', 2000)
client.set_timeout(500.0)
world = client.get_world()
blueprint_library = world.get_blueprint_library()
spectator = world.get_spectator()
bp_lib = world.get_blueprint_library()  
spawn_points = world.get_map().get_spawn_points() 


```
#Laden von Carla,Library,Map, erstellen des Spectators
client = carla.Client('localhost', 2000)
client.set_timeout(500.0)
world = client.get_world()
blueprint_library = world.get_blueprint_library()
spawnpoints = world.get_map().get_spawn_points()
spectator = world.get_spectator()

#Nun Einstellungen zum Fahrzeug
vehicle_blueprint = blueprint_library.find('vehicle.audi.etron')
#Fahrzeug wird an einem zufälligen Spawnpunkt gespawnt
vehicle = world.try_spawn_actor(vehicle_blueprint,random.choice(spawnpoints))
transform = carla.Transform(vehicle.get_transform().transform(carla.Location(x=2,z=0.5)),vehicle.get_transform().rotation)
spectator.set_transform(transform)

#Kamera
camera_blueprint = blueprint_library.find('sensor.camera.rgb')
camera_transform = carla.Transform(carla.Location(z=2,x=0.5))
camera = world.spawn_actor(camera_blueprint,camera_transform,attach_to=vehicle)

def camera_callback(image,data):
    data['image'] = np.reshape(np.copy(image.raw_data), (image.height, image.width, 4))

image_width = camera_blueprint.get_attribute("image_size_x").as_int()
image_height = camera_blueprint.get_attribute("image_size_y").as_int()
camera_data = {'image': np.zeros((image_height,image_width, 4))}

camera.listen(lambda image: camera_callback(image, camera_data))



#Anzeigen des Bildes
cv2.namedWindow('Camera', cv2.WINDOW_AUTOSIZE)
cv2.imshow('Camera', camera_data['image'])
cv2.waitKey(1)
while True:
    img = cv2.imshow('Camera', camera_data['image'])
    vehicle.set_autopilot(True)
    camera.listen(lambda image: image.save_to_disk(r"C:\Users\Joshi\Desktop\CARLA_0.9.13\WindowsNoEditor\PythonAPI\examples\out",color_converter=None))

    if cv2.waitKey(1) == ord('p'):
        client.reload_world()
        break
cv2.destroyAllWindows()
```

```
`

為什么不將圖像保存在camera_callback本身中?

例如:

def camera_callback(image, data):
    capture = np.reshape(np.copy(image.raw_data), (image.height, image.width, 4))
    data['image'] = capture
    cv2.imwrite(f"{image.frame}.png", capture)

或者:

def camera_callback(image, data):
    data['image'] = np.reshape(np.copy(image.raw_data), (image.height, image.width, 4))
    image.save_to_disk(f"{image.frame}.png")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM