个人库的一些小工具
该部分的内容还未更新完。。。
pip install lddya=4.1.0 #最新内容对应的版本
一. 地图处理类Map
功能1 地图读取/保存/反转
介绍
Map
提供load_map_file()
方法来从地图文件中读取地图数据。地图数据内容如下所示,注意地图数据最后一行有个换行,即空白行。
00001100000000000000
00000000000011100000
01000111100011100000
01100111100011100000
00000011100000001100
01100000000111001100
11100011100000001100
00000001101111000000
01110000001111000000
01110000000000000000
00110011100000111000
00110001100000011100
10000000000111000000
10000110000011110000
00110011000011111100
00110011100000000000
00000011100000000110
00000000000111100110
00000000000001100010
00000000000000000000
Map
提供save()
方法来保存地图数据到地图文件中。Map
提供map_reverse()
方法来直接翻转地图文件中的数据。
步骤
首先,主程序代码如下:
from lddya.Map import Map
m = Map()
m.load_map_file(fp='map.txt') # fp为地图数据文件地址
print(m.data) # 向各种算法类或者栅格图类传递时,直接传m.data就行了,m.data本质是个np数字矩阵
m.save() # 将m.data保存为文件
m.map_reverse(fp='map.txt') # 将地图文件中的内容进行垂直反转,注意,这里保存数据是自动的,不需要用save()。设计该方法的原因 \
# 在于, 目前论文中的栅格图起点有的在左上有的在左下,为了简化流程,就设计了这个函数
功能2:地图识别
介绍
Map
提供recognition()
方法来从图片文件中识别出栅格图信息。
注:
1.本工具只处理正方形地图,如果你的地图不是正方形,你可以用图片处理软件将之扩充至正方形。
2. 本工具仅能识别黑白色的地图。
步骤
首先,主程序代码如下:
from lddya.Map import Map
m = Map()
m.recognition('map.jpg',size=20) #map.jpg是图片路径,size是栅格图的尺寸
m.save('map.txt') #map.txt是你地图数据要存放的文件名
以下面的map.jpg为例,
运行程序,你会看到如下界面:
此时,你需要在栅格图的四个顶点处用鼠标点击一下,顺序随便,之后程序就会自动识别出结果:
这时,不出意外的话,识别工作就结束了,但你还是要自己检查一下有没有问题,如果,某个位置的识别结果有问题,你可以在对应的红色点或蓝色点处点击一下,就能反转该点的识别结果。
至此,识别功能展示结束!