In [1]:
# Extract from youtube the video of gathering using pytube
In [2]:
import pytube
In [3]:
url_video = 'https://www.youtube.com/watch?v=he8_V0BvbWg'
In [4]:
yt = pytube.YouTube(url_video)
yt.set_filename('Gathering-gameplay')
Out[4]:
In [5]:
print(yt.get_videos())
print(yt.filename)
In [6]:
# To select a video by a specific resolution and filetype you can use the get
# method.
video = yt.get('mp4')
video.download('./')
In [7]:
video
Out[7]:
In [8]:
import pylab
import imageio
filename = yt.filename+'.mp4'
vid = imageio.get_reader(filename, 'ffmpeg')
nums = range(0,5)
for num in nums:
image = vid.get_data(num)
fig = pylab.figure()
fig.suptitle('image #{}'.format(num), fontsize=20)
pylab.imshow(image)
pylab.show()
In [9]:
imageio.plugins.ffmpeg.download()
In [9]:
image = vid.get_data(0)
In [10]:
type(image)
Out[10]:
In [11]:
import pylab
pylab.imshow(image)
pylab.show()
In [20]:
image.shape
Out[20]:
In [13]:
image[100,300,:]
Out[13]:
In [30]:
print(image.shape[0]/16,image.shape[1]/16)
In [131]:
import numpy as np
import pylab
a=np.zeros((5,5,3),dtype=np.uint8)
a[:,:,0]=0
a[:,:,1]=0
a[2,3,2]=255
a[3,3,2]=255
a[3,3,1]=255
a[4,4,2]=255
a[4,4,1]=255
In [132]:
a.shape
Out[132]:
In [133]:
pylab.imshow(a)
pylab.show()
In [134]:
ch_pl = 0 # channel of player
other_chs = [0,1,2]
other_chs = [x for x in other_chs if x != ch_pl]
In [135]:
tmp = np.argwhere(a[:,:,ch_pl] == 255)
In [136]:
tmp
Out[136]:
In [137]:
for [x,y] in tmp:
if a[x,y,other_chs[0]]==0 and a[x,y,other_chs[1]]==0:
print(x,y)
In [146]:
np.mgrid[0:0,0:-1].squeeze()
In [45]:
dir_dict = {'up':1,'down':3,'left':2,'right':0} # exp of 4th roots of 1
a = dir_dict['right']
def rot_right(a):
a=(a-1)%4
return a
def rot_left(a):
a=(a+1)%4
return a
In [46]:
for k,v in dir_dict.items():
if v == rot_right(a):
print('rot right',k)
if v == rot_left(a):
print('rot left',k)
In [76]:
import numpy as np
import pylab
x=2
y=3
H=10
W=10
s=np.ones((3,W,H),dtype=np.uint8)*255
gr=np.mgrid[x:x+1,y:H].squeeze()
print(gr)
print('s',s.shape,'gr',gr.shape)
s[0,gr[0],gr[1]]=np.ones(gr.shape[1])*255
s[1,gr[0],gr[1]]=np.ones(gr.shape[1])*255
s[2,gr[0],gr[1]]=np.zeros(gr.shape[1])
print(s)
pylab.imshow(s.transpose((1,2,0)))
pylab.show()
xp=2;yp=5
In [42]:
a=np.arange(10).reshape(2,5)
pp=np.arange(4).reshape(2,2)
print(a)
a[[[0,1,0],[2,3,0]]]
Out[42]:
In [14]:
ll=[1,2,-1]
for x in ll:
if x >= 0:
x += 1
In [15]:
ll
Out[15]:
In [18]:
W=3;H=3
import numpy as np
mid_x = int((W-1)/2)+1
mid_y = int((H-1)/2)+1
mid = np.array([mid_x,mid_y]) # coordinate central point
dx = np.array([1,0])
dy = np.array([0,1])
a = np.array([mid+2*dy,
mid+dy-dx,mid+dy,mid+dy+dx,
mid-2*dx,mid-dx,mid,mid+dx,mid+2*dx,
mid-dy-dx,mid-dy,mid-dy+dx,
mid-2*dy])
In [21]:
for x,y in a:
print(x,y)
print(a)
In [4]:
import numpy as np
a=np.arange(10)
b=np.argwhere(a==11)
print(b.size)
a[b]
Out[4]:
In [6]:
import numpy as np
a=np.arange(2)
x=a[0]
y=a[1]
In [25]:
x.shape==()
x=x.reshape((1,1))
print(x.shape)
In [26]:
for i in x:
print(i)
In [19]:
a=np.array([[2]])
In [23]:
a=a.reshape((1,))
In [24]:
a.shape
Out[24]:
In [32]:
ll=[1,2,3,3]
ll_pos=[[-1,2],[-2,2],[0,1],[2,3]]
pos_tb_res = []
new_pos = []
new_t_apples = []
for i,pos in zip(ll,ll_pos)
if i>2:
pos_tb_res.append(pos)
else:
new_pos.append(pos)
new_t_apples.append(pos)
In [35]:
for x,y in pp:
print(x,y)
In [2]:
import numpy as np
In [6]:
a=np.arange(8).reshape((2,2,2))
print(a[0,:,:])
print(a[1,:,:])
In [10]:
np.flip(a,[1,2])
In [7]:
a=np.array([0,1])
b=np.zeros(2)
all(a==b)
Out[7]: