labelimg标注数据处理以及画散点图(python)
第一步 labelimg标注数据进行处理
数据来自于实验室的布匹瑕疵检测项目,其中这里是标签的信息,每个txt是对一个图片瑕疵的标注,一个txt的一行是:瑕疵种类编号 bbox中心点横坐标 bbox中心点纵坐标 bbox宽 bbox高,我们需要最终用长宽比以及面积制作一个散点图。
@1 将多个TXT文本组合成一个
代码如下
# coding=utf-8import osimport os.path # 文件夹遍历函数# 获取目标文件夹的路径filedir = 'F:\\cpanzhuomian\\label'# 获取当前文件夹中的文件名称列表filenames = os.listdir(filedir)# 打开当前目录下的result.txt文件,如果没有则创建f = open('result.txt', 'w')# 先遍历文件名for filename in filenames: filepath = filedir '/' filename # 遍历单个文件,读取行数 for line in open(filepath): f.writelines(line) f.write('\n')# 关闭文件f.close()
结果多个TXT文本合并为一个TXT文本
@2 将TXT文本中空格转换成逗号并保存为csv格式
ls = open("D:\\sandiantu\\new.txt").readlines()newTxt = ""for line in ls: newTxt = newTxt ",".join(line.split()) "\n"print(newTxt)fo = open("D:\\sandiantu\\new11.csv", "w")fo.write(newTxt)fo.close()
最后结果
保存为csv格式后用Excel函数将数据进行增删改成最终想要的x轴数据y轴数据,这一步相信很多人都会,略过
第二步 用csv数据画出散点图
代码如下
import pandas as pdimport matplotlib.pyplot as plthw=pd.read_csv('new11.csv')#导入csv文件plt.scatter(hw['height/weight'], hw['squar'],s=2)#s指的是点的面积plt.xlabel(u"squar")plt.ylabel(u"height/weight")#画出散点图plt.show()#将散点图显示出来
最终效果
最终的小小说明
在这个过程中,你可能需要将TXT中多余进行删除
代码如下
"""读取存在空行的文件,删除其中的空行,并将其保存到新的文件中"""with open('D:\\sandiantu\\result.txt','r',encoding = 'utf-8') as fr,open('new.txt','w',encoding = 'utf-8') as fd: for text in fr.readlines(): if text.split(): fd.write(text) print('输出成功....')
That’s all ,感谢观看
赞 (0)