【python】笔势识别 - 缩小规格,坐标点转换为矩阵,图片输出处理
- 1. 说明
- 2. 处理效果
- 3. 代码
1. 说明 数据处理:将一块内的x(y)轴数据全部减去它的最小值,在矩阵上标点,确定插值方式,将其填充为类似图像的矩阵
进而利用图像识别的方式使用图片训练模型(选择: 全连接/CNN) 可参考此篇
思路说明:
- 找到x,y轴坐标最小值
- 重建坐标系(循环遍历x,y轴,减去minx和miny中最小值)
- 寻找最大坐标,即框框长度(图片的长宽)
- 连线,并将矩阵存为图片
2. 处理效果 处理前(注意看横纵坐标数值)
文章图片
处理后
文章图片
处理后(点图连成线图,图片输出处理)
文章图片
3. 代码
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()
推荐阅读
- Datawhale吃瓜教程|第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第三章 / 周志华《机器学习》
- 笔记|RL强化学习笔记(OpenAI gym建立自己的探索环境)
- Python|python opencv透视变换矫正文档
- #|图像去噪论文综述(更新中...)
- 算法|PyTorch 之 Checkpoint 机制解析
- 数据科学从0到1|pandas使用query函数基于组合索引筛选dataframe的数据行(与and、或or、非not)
- 人工智能|入门机器学习(西瓜书+南瓜书)第一、二章总结(python代码实现)
- python|Mx-yolov3环境配置+本地模型训练+K210
- 计算机视觉教程|计算机视觉教程2-7(天使与恶魔?图文详解图像形态学运算(附代码))