改为对整个文件夹里的原图及对应的json文件的操作
时间: 2024-04-08 18:28:39 浏览: 142
对整个目录下的文件进行操作
4星 · 用户满意度95%
下面是对整个文件夹中的原图及对应的 JSON 文件进行操作的代码示例:
```python
import cv2
import json
import os
def augment_data(image_path, json_path, output_dir):
# 读取原图
image = cv2.imread(image_path)
# 读取对应的 JSON 文件
with open(json_path, 'r') as f:
json_data = json.load(f)
# 进行数据增强操作(根据需求自定义)
augmented_image = image # 这里仅为示例,实际应用中可以调用相关的数据增强函数
# 保存增强后的图像
image_filename = os.path.basename(image_path)
augmented_image_path = os.path.join(output_dir, image_filename)
cv2.imwrite(augmented_image_path, augmented_image)
# 保存对应的 JSON 文件
json_filename = os.path.basename(json_path)
augmented_json_path = os.path.join(output_dir, json_filename)
with open(augmented_json_path, 'w') as f:
json.dump(json_data, f)
print(f"Augmented data saved: {augmented_image_path}, {augmented_json_path}")
# 设置输入文件夹、输出文件夹路径
input_folder = 'input_folder'
output_folder = 'output_folder'
# 获取输入文件夹中所有原图文件的路径
image_paths = [os.path.join(input_folder, file) for file in os.listdir(input_folder) if file.endswith('.jpg')]
# 遍历每个原图文件进行数据增强
for image_path in image_paths:
# 构造对应的 JSON 文件路径
json_path = os.path.splitext(image_path)[0] + '.json'
# 检查对应的 JSON 文件是否存在
if os.path.exists(json_path):
augment_data(image_path, json_path, output_folder)
else:
print(f"JSON file not found: {json_path}")
```
在这个示例中,我们假设原图是以`.jpg`为扩展名,对应的 JSON 文件与原图文件名相同,但扩展名为`.json`。你可以根据实际情况修改文件名的匹配规则。`augment_data`函数用于读取原图和 JSON 文件,并进行数据增强操作。增强后的图像和对应的 JSON 文件将保存在输出文件夹中。你可以根据需要自定义数据增强操作。遍历每个原图文件,并检查对应的 JSON 文件是否存在,然后调用`augment_data`函数进行数据增强处理。
阅读全文