生成monai框架的dataset的json文件

前言

在使用monai.data.CacheDataset导入数据,以及monai.data.DataLoader时,使用json文件组织数据。
在这里插入图片描述
那么假设我们的数据图像文件放在images文件夹里面,标签数据放在labels文件夹里面,如何生成这种格式的json文件呢,并且训练集和验证集的比例为8:2

代码

import json
import os
import random

if __name__ == '__main__':
    demo = False
    if demo==True:
        price={
    
    }
        price["a"] = 24
        print(price)
        
        with open("ts.json","w") as f:
            json.dump(price,f,indent=4)

    filedict = {
    
    }
    data_dir = "G:/d_disk/airway_datasets"
    filenames = os.listdir(os.path.join(data_dir,"train_data_nii"))

    training_contents,validation_contents = [], []
    val_length = 0
    for filename in filenames:
        if val_length<(len(filenames)*0.2): # 如果验证集比例小于0.2
            if random.randint(1,2) == 1: # 并且随机数为1
                # 则放到验证集
                dic_content = {
    
    "image":f"train_data_nii/{
      
      filename}",
                                "label":f"train_label_nii/{
      
      filename}"}
                validation_contents.append(dic_content)
            else:
                # 否则放到训练集
                dic_content = {
    
    "image":f"train_data_nii/{
      
      filename}",
                                "label":f"train_label_nii/{
      
      filename}"}
                training_contents.append(dic_content)

        else:
            # 否则放到训练集
            dic_content = {
    
    "image":f"train_data_nii/{
      
      filename}",
                                "label":f"train_label_nii/{
      
      filename}"}
            training_contents.append(dic_content)
    
    
    labels_contents = {
    
    "0":"background","1":"airway"}
    filedict["labels"] = labels_contents
    
    filedict["training"] = training_contents
    filedict["validation"] = validation_contents

    

    with open("dataset.json","w") as f:
            json.dump(filedict,f,indent=4)

完成!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sdhdsf132452/article/details/129796643