import numpy as np
import matplotlib.pyplot as plt
from scipy.stats._continuous_distns import gennorm
data = np.load('data/平移旋转3度.npy')
def Manage_gen(gen_imgs):
#gen_imgs一个维度为(-1,3,60)的数组,头部分支的尾部,与左右分支的头部分开了
#目的把头的尾部,加入左右分支头部,并保证,维度不变
finaldata = gen_imgs.tolist()
final = []
for i in range(len(finaldata)):
zhu = finaldata[i][0]
zuo = finaldata[i][1]
you = finaldata[i][2]
#单独分开x,y,列表
zhu_x = zhu[0:30]
zhu_y = zhu[30:60]
zuo_x = zuo[0:30]
zuo_y = zuo[30:60]
you_x = you[0:30]
you_y = you[30:60]
############################################
#真实数据主分支最后两个基本相等,所以生成数据也是,这样计算角度时,就应该计算最后一个和倒数第三个点
#为了让主分支最后一个加在左右分支的头部,此处先去掉左右分支的最后一个点,因为端点插入的值都是相等的,所以去掉影响不大
#然后,再将主分支的尾部,加入左右分支头部,这样,就保证了维度不变
#去除左右分支尾部一个数
del zuo_x[-1]
del zuo_y[-1]
del you_x[-1]
del you_y[-1]
#在左右分支的头部插入主分支的尾部
zuo_x.insert(0,zhu_x[-1])
zuo_y.insert(0,zhu_y[-1])
you_x.insert(0,zhu_x[-1])
you_y.insert(0,zhu_y[-1])
zhu_x.extend(zhu_y)
zuo_x.extend(zuo_y)
you_x.extend(you_y)
fencha = [zhu_x] +[zuo_x] + [you_x]
final.append(fencha)
final = np.array(final)#一个维度为(-1,3,60)的数组
return final
def Plt_images(imgs):
for i in range(len(imgs)):
plt.plot(imgs[i][0][0:30],imgs[i][0][30:60],color='red')
plt.plot(imgs[i][1][0:30],imgs[i][1][30:60],color='blue')
plt.plot(imgs[i][2][0:30],imgs[i][2][30:60],color='green')
plt.show()
gen = Manage_gen(data)
print(gen.shape)
# Plt_images(gen)
np.save('data/平移旋转3度_主左右端点相连.npy',gen)