首页 > 编程语言 >【Python】保存gym截图

【Python】保存gym截图

时间:2024-05-12 20:31:22浏览次数:16  
标签:截图 img Python gym env action import os

如果想做基于图像cnn的深度强化学习,需要拿到gym的截图,下面是两种截图方法。

1. 利用render结果生成图像:

import gym
import warnings
import os
from PIL import Image

warnings.filterwarnings("ignore")

if os.path.exists('img')==False:
    os.mkdir('img')

env = gym.make("CartPole-v1")

num = 0
for i in range(3000):
    state = env.reset()

    while True:
        num +=1
        screen = env.render(mode='rgb_array')
        img = Image.fromarray(screen)

        filename = './img/screen_image'+str(num)+'.png'
        print('save img at '+filename)
        img.save(filename)

        action = env.action_space.sample()
        next_state, reward, done, _ = env.step(action)

        if done:
            break

2.  针对atari仿真,没有render,可以用env.env.ale.saveScreenPNG生成图像:

import gym
import warnings
import time
import os

warnings.filterwarnings("ignore")

if os.path.exists('img')==False:
    os.mkdir('img')

env = gym.make('Pong-v0', render_mode='human')

obs = env.reset()
for i in range(1000):

    env.env.ale.saveScreenPNG('./img/screen_image'+str(i)+'.png')

    action = env.action_space.sample()
    obs, reward, done, info = env.step(action)
    time.sleep(0.01)
env.close()

标签:截图,img,Python,gym,env,action,import,os
From: https://www.cnblogs.com/tiandsp/p/18187672

相关文章

  • python教程13-异常处理
    异常处理流程:流程示例: 抛出异常自定义异常 ......
  • kombu & celery:如何在Python中舒适地使用消息队列
    Kombu和Celery是Python中的两个库,它们可分开或结合起来使用,以实现基于分布式消息传递的异步任务队列。KombuKombu是一个Python消息库,它为多种消息队列提供了抽象和统一的使用方式。它支持AMQP协议的消息队列服务,如RabbitMQ和Redis,以及其他一些通过插件实现的传输方......
  • python教程12-面向对象进阶
    1、classmethod类方法类方法只能访问类变量,不能访问实例变量2、staticmethod静态方法不能访问类变量,也不能访问实例变量。除非在实例调用时给方法传实例。3、反射1-判断对象是否有属性的情况用法: 实例: __name__,模块被其他模块导入的时候调用,是你叫的名字。模块自己主......
  • python 反序列化漏洞
    python反序列化前言:python反序列化相比java反序列化,更接近于php反序列化1.0python中的序列化函数**1.**pickle.dump(obj,file)将对象序列化后保存在文件中2.pickle.load(file)将文件中序列化内容反序列化为对象**3.**pickle.dumps(obj)将对象序列化后返回,返回的是......
  • Python游戏制作大师,Pygame库的深度探索与实践
    写在前言hello,大家好,我是一点,专注于Python编程,如果你也对感Python感兴趣,欢迎关注交流。希望可以持续更新一些有意思的文章,如果觉得还不错,欢迎点赞关注,有啥想说的,可以留言或者私信交流。如果你想看什么主题的文章,欢迎留言交流,关注公众号【一点sir】,领取编程资料。如果你还不了......
  • 【python】bilibili动态删除脚本
    importpprintimportrequestsimportjsonimportreimportos#最大删除条数MAX_COUNT=200#保存cookie的路径COOKIE_FILE_PATH=r"./cookie.txt"classBWebSite(object):def__init__(self):ifnotos.path.exists(COOKIE_FILE_PATH):print("未检测到cooki......
  • python获取问津
    importosimportrequestsimportjsonimportrefrombs4importBeautifulSoupfromqiniuimportAuth,put_fileclassBilibiliVideoAudio:def__init__(self,bid,download_path='download'):self.bid=bidself.headers={&qu......
  • 【攻防技术系列】-- Python沙箱逃逸
    Python是一种强大而灵活的编程语言,但在某些情况下,可能需要运行不受信任的代码,同时又希望限制它的行为,以防止对系统的不良影响。这时,Python沙箱就成为一种有用的工具,它可以帮助你在安全的环境中运行不受信任的代码。本文将探讨Python沙箱的概念、常见的沙箱技术以及如何避免沙......
  • Playwright安装与Python集成:探索跨浏览器测试的奇妙世界
    前言web自动化测试是我们工作中的重要一环,随着Web应用程序和网站的复杂性不断增加,跨浏览器测试变得越来越必要。而Playwright作为一种新兴的跨浏览器测试工具,为开发人员提供了一种轻松愉快的方式来进行自动化测试。本文将带您深入探索Playwright的安装过程,并结合Python语言,揭示......
  • 神器!使用Python 轻松识别验证码
    前言在我们进行自动化测试的过程中,免不了要在登录时遇到验证码,很多时候我们都是只能找开发要万能验证码或者暂时关闭验证码这个功能,但是有时候我们必须要验证码是否能够正常生成,所以在这个时候,我们需要做的就是输入验证码,但是验证码这个东西是随机生成的,不是每一次都一样,所以我......