强化学习系列文章(二十三):AirSim Python API图像与图像处理

强化学习系列文章(二十三):AirSim Python API图像与图像处理

参考网址:https://microsoft.github.io/AirSim/image_apis/#segmentation

1.simGetImage函数

使用0号相机得到单张图像。返回值是PNG格式的图像。

import airsim #pip install airsim

# for car use CarClient() 
client = airsim.MultirotorClient()

png_image = client.simGetImage("0", airsim.ImageType.Scene)
# do something with image

2.simGetImages函数

simGetImages函数提供了更多可能性,如选择不同相机位置,得到不同类型图像等等,例如单通道的浮点数图像或者三通道的uint8图像。

import airsim #pip install airsim

# for car use CarClient() 
client = airsim.MultirotorClient()

responses = client.simGetImages([
    # png format
    airsim.ImageRequest(0, airsim.ImageType.Scene),  # 相机名称,图像类型,是否浮点数,是否压缩图像(默认压缩)
    # uncompressed RGB array bytes
    airsim.ImageRequest(1, airsim.ImageType.Scene, False, False),
    # floating point uncompressed image
    airsim.ImageRequest(1, airsim.ImageType.DepthPlanner, True)])

# do something with response which contains image data, pose, timestamp etc

ImageRequest函数源代码:

class ImageRequest(MsgpackMixin):
    camera_name = '0'
    image_type = ImageType.Scene
    pixels_as_float = False
    compress = False

    def __init__(self, camera_name, image_type, pixels_as_float = False, compress = True):
        # todo: in future remove str(), it's only for compatibility to pre v1.2
        self.camera_name = str(camera_name)
        self.image_type = image_type
        self.pixels_as_float = pixels_as_float
        self.compress = compress

常用的ImageType有:

airsim.ImageType.Scene                # = 0 最普通的场景,主界面的图像
airsim.ImageType.DepthPlanner         # = 1 
airsim.ImageType.DepthPerspective     # = 2
airsim.ImageType.DepthVis             # = 3 景深图像
airsim.ImageType.DisparityNormalized  # = 4
airsim.ImageType.Segmentation         # = 5 目标分割图像
airsim.ImageType.SurfaceNormals       # = 6
airsim.ImageType.Infrared             # = 7

3.AirSim图像转Numpy格式

首先获取无压缩的图像,并按如下方式转成Numpy:

r
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值