请帮忙编写一个按百分比随机抽取数据的.py脚本,数据格式是图片以及对应的labelme生成的.json文件
时间: 2024-04-15 07:32:07 浏览: 95
手部X光关键点检测数据集300张21点labelme标注json格式.zip
当提到按百分比随机抽取数据的.py脚本时,我将提供一个示例,以便你参考。以下是一个使用Python的脚本示例,它可以按照指定的百分比随机抽取图片及其对应的labelme生成的.json文件:
```python
import os
import random
import shutil
def random_sample_data(data_dir, output_dir, sample_percentage):
# 获取数据目录下所有图片文件和对应的json文件
image_files = [f for f in os.listdir(data_dir) if f.endswith('.jpg') or f.endswith('.png')]
json_files = [f for f in os.listdir(data_dir) if f.endswith('.json')]
# 计算要抽取的样本数量
num_samples = int(len(image_files) * sample_percentage / 100)
# 随机抽取指定百分比的样本
random_samples = random.sample(range(len(image_files)), num_samples)
# 创建输出目录
os.makedirs(output_dir, exist_ok=True)
# 将抽取的样本复制到输出目录中
for idx in random_samples:
image_file = image_files[idx]
json_file = image_file.replace('.jpg', '.json').replace('.png', '.json')
shutil.copy(os.path.join(data_dir, image_file), os.path.join(output_dir, image_file))
shutil.copy(os.path.join(data_dir, json_file), os.path.join(output_dir, json_file))
print(f"Copied {image_file} and {json_file} to {output_dir}")
# 设置数据目录、输出目录和要抽取的样本百分比
data_dir = 'path/to/data'
output_dir = 'path/to/output'
sample_percentage = 10 # 例如抽取10%的样本
# 调用函数进行按百分比随机抽取
random_sample_data(data_dir, output_dir, sample_percentage)
```
请将上述示例代码中的`data_dir`替换为包含图片和对应.json文件的数据目录的路径,将`output_dir`替换为输出目录的路径,将`sample_percentage`替换为你想要抽取的样本百分比。运行脚本后,它将按照指定的百分比随机抽取图片和对应的.json文件,并将它们复制到输出目录中。
阅读全文