写一个批量将yolo标签旋转转换的python代码
时间: 2024-01-13 10:05:53 浏览: 115
进行YOLO算法实现和落地时遇到的一些数据预处理的问题及其解决方法.zip
以下是一个可以批量将yolo标签旋转转换的Python代码。假设你要将所有的标签文件都旋转90度,你可以将此代码保存为 `rotate_yolo_labels.py` 并在终端中运行:
```python
import os
# 旋转角度,单位为度
angle = 90
# 遍历当前目录下的所有txt文件
for filename in os.listdir("."):
if filename.endswith(".txt"):
# 读取标签文件内容
with open(filename) as f:
content = f.readlines()
# 旋转标签
new_content = []
for line in content:
parts = line.strip().split()
if len(parts) == 5:
x, y, w, h, c = parts
new_x = 1 - (float(y) + float(h)) # 旋转公式
new_y = float(x)
new_w = float(h)
new_h = float(w)
new_line = "{} {} {} {} {}\n".format(new_x, new_y, new_w, new_h, c)
new_content.append(new_line)
# 将旋转后的标签写入新文件
new_filename = "rotated_" + filename
with open(new_filename, "w") as f:
f.writelines(new_content)
```
运行后,此代码将会遍历当前目录下的所有 `.txt` 文件,并将其旋转90度后保存为新的文件,文件名以 `rotated_` 前缀开头。例如,`example.txt` 文件将会被旋转并保存为 `rotated_example.txt` 文件。
阅读全文