数据处理:将一块内的x(y)轴数据全部减去它的最小值,在矩阵上标点,确定插值方式,将其填充为类似图像的矩阵
进而利用图像识别的方式使用图片训练模型(选择: 全连接/CNN) 可参考此篇
思路说明:
找到
处理前(注意看横纵坐标数值)
处理后
处理后(点图连成线图,图片输出处理)
print(strokes[0]) # [[第一笔的所有x], [第一笔的所有y]]
arx=strokes[0][0]
ary=strokes[0][1]
#循环找到x轴最小点
minx = arx[0]
for k in range(len(arx)):
if minx>=arx[k]:
minx=arx[k]
# 循环找到轴最小点
miny = ary[0]
for j in range(len(ary)):
if miny>ary[j]:
miny=ary[j]
# 循环遍历x,y轴,减去minx和miny中最小值
for k in range(len(arx)):
arx[k]=arx[k]-minx
for k in range(len(ary)):
ary[k]=ary[k]-miny
strokes[0][0]=arx
strokes[0][1]=ary
# plt.plot(arx,ary,
# color='red', # 全部点设置为红色
# marker='.', # 点的形状为圆点
# linestyle='') # 线型为空,也即点与点之间不用线连接
# plt.grid(True)
# plt.show()
# 寻找最大坐标,即框框长度
for k in range(len(arx)):
if arx[k]>maxx:
maxx=arx[k]
for k in range(len(ary)):
if ary[k]>maxy:
maxy=ary[k]
# 连线,并将矩阵存为图片
plt.figure('图')
for i in range(len(arx) - 1):
x1 = arx[i]
y1 = ary[i]
# print(x1, y1)
x2 = arx[i + 1]
y2 = ary[i + 1]
plt.plot([x1, x2], [y1, y2], color='r')
plt.axis('off')
plt.savefig('./picture.png')
# plt.show()