1.第一步是通过软件 对图片 进行初步处理 标注关键点坐标 得到的就是对应的txt文件;
2.但是是大量的 这个初步txt文件里面的内容是关于图片的相对坐标;
3.需要进一步处理转换 就是所需求的转换;
4.转换用到的数值 就是图片属性的尺寸大小 即宽度与高度 ;(有不同的图片来源,此处转换数值可以进行自定义);
5.用相对坐标去乘以图片的宽、高 得到的数值结果取整数,最后再转换txt文件格式为.pts格式就是最终要求。
import os
def trans(root_dir):
for f in os.listdir(root_dir):
if f.endswith(".txt"):
f_name = os.path.splitext(f)[0]
f_path = os.path.join(root_dir, f)
pts_f = os.path.join(root_dir, f"{f_name}.pts")
print(f"Trans {f} to {os.path.basename(pts_f)}")
with open(f_path, "r") as rf, open(pts_f, "w")as wf:
lines = [x.strip() for x in rf.readlines()[1:]]
print(lines)
multis = [1262, 948] # 请设置转换图片宽、高数值
# lines = [[x.split(".")[-1][:3] for x in y.split(' ')] for y in lines]
lines = [[str(multi * int(x.split(".")[-1][:3])) for multi, x in zip(multis, y.split(' '))] for y in
lines]
print(lines)
# lines = [[x.split('.')[-1][:3] for x in y.split(' ')] for y in lines]
for line in lines:
wf.write(' '.join(line) + '\n')
print("Done!")
if __name__ == '__main__':
# trans("txt所在的文件夹")
trans(r"H:\study\test")
print("转换完成!")
#望解答