0
我對python有點新,我正在使用來自OpenAI的miniWOB。我想用cv2打印出我對我的經紀人的觀察結果。但真的沒關係。我的問題是我不知道哪些數據類型從健身房收到我的「觀察」。但是我想把它作爲一個簡單的三維數組。這種格式我可以使用cv2打印出來。所以任何人都可以幫助我將我的<類的列表觀察轉換爲:< type nunpy.ndarray>?我已經嘗試過觀察= np.asarray(觀察),但後來我得到了這個錯誤:「mat數據類型= 17」。將<class'list'>轉換爲numpy.ndarray
import cv2
import random
import gym
import universe
import go_vncdriver
import numpy as np
def main():
env = gym.make('wob.mini.ClickTest-v0')
env.configure(remotes=1) # create one flashgames Docker container
observation = env.reset()
while True:
env.render()
x = 110
y = 270
action_n = [universe.spaces.PointerEvent(x, y, 1), universe.spaces.PointerEvent(x, y, 0),
universe.spaces.PointerEvent(x, y, 1)]
action_n = [action_n for ob in observation]
observation, reward_n, done_n, info = env.step(action_n)
observation = np.asarray(observation) #this one converts to nd array but then I got the mat data type = 17 error
if (observation != None):
print(type(observation))
cv2.imshow('pong voor net', observation)
cv2.waitKey(0)
cv2.destroyAllWindows()
main()
我收到此:
[{'vision': array([[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
...,
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]], dtype=uint8), 'text': []}]
我想將其轉換爲這種類型:
[[[144 72 17]
[144 72 17]
[144 72 17]
...,
[144 72 17]
[144 72 17]
[144 72 17]]
[[144 72 17]
[144 72 17]
[144 72 17]
...,
[144 72 17]
[144 72 17]
[144 72 17]]
[[144 72 17]
[144 72 17]
[144 72 17]
...,
[144 72 17]
[144 72 17]
[144 72 17]]
謝謝!這段簡單的代碼實現了訣竅 – lambotje