python - 如何合并两帧?openai 健身房复古中闪烁的观察问题
问题描述
我正在使用带有 Atari2600 Asteroids rom 的 openai gym retro 作为我的强化学习项目的基础,但在观察和渲染方面遇到了问题。更准确地说,观察要么只是带有子弹或陨石的特工/宇宙飞船。所以每一秒帧都只是宇宙飞船。
我的目标是使用 cv2 将这两个图像组合为一个图像。我有一个基本的观察包装器,它适用于观察,但对于渲染(调用 env.render())它仍然在做最初的问题。
class MemoryFrameWrapper(gym.ObservationWrapper):
def __init__(self, env):
super().__init__(env)
self._prevFrame = None
self._thereisprev = False
def observation(self, frame):
if self._thereisprev:
frame2 = cv2.addWeighted(self._prevFrame, 1, frame, 1, 0)
self._prevFrame = frame
else:
frame2 = frame
self._thereisprev = True
self._prevFrame = frame
return frame2
我需要使用另一个包装器来使帧通过记忆真正合并还是有其他解决方案?
解决方案
推荐阅读
- junit - 具有自动装配依赖关系的 MapStruct 转换器不适用于 Mockito
- spring - 将文件上传到 S3 存储桶。无法从环境变量加载客户端监控配置
- cookies - Web 浏览器未向服务器发送 cookie
- javascript - 在 JS 中初始化复选框,点击它应该给出行数据
- php - 使用 PHP 生成 CSV 文件
- firebase - 公众无法访问 Firebase Cloud Function [应用程序正在请求访问您的 Google 帐户的权限。]
- angular - 无法使用带有ngrx的角度读取未定义的属性“地图”
- java - AES/CBC/PKCS5Padding 加密与固定 IV(或没有)
- database - 有没有办法查询谷歌 ngrams 超过 10 个替换?
- javascript - 捕捉 Amcharts 的 CircleBullet 点击事件