SwinUnet跑自己数据

SwinUnet官方代码的数据集是.npz格式的,训练自己数据集搞了我几天。md。
1.原图和mask大小要一致,而且都是要单通道图片,如果是3通道的图片用下面代码转化一下成单通道。我只会一张张图片转换,如果有人会批量转换,可以在评论区发一下啊,大家一起学习。

img = cv2.imread('./data/DRIVE/test/images/21.png')  # 读取图片
    gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)  # 将RGB图像转换为灰度图像
    print(gray_img)
    cv2.imwrite('211.jpg', gray_img)  # 保存灰度图像为文件

首先搞四个文件夹,test—npz和train-npz空着就行。
在这里插入图片描述

def npz():
# 代码只是用2分类
    #原图像路径
    path = r'./images/*.png'
    #放npz文件路径
    path2 = r'./train_npz\\'
    for i,img_path in enumerate(glob.glob(path)):
        image = cv2.imread(img_path)
        image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
        label_path = img_path.replace('images','labels')
        label = cv2.imread(label_path,flags=0)
        label[label!=255]=0
        label[label==255]=1
        np.savez(path2+str(i),image=image,label=label)
        print('------------',i)

然后就会生成对应的npz文件。
我只会弄2分类的啊,如果有人会弄多分类的,也可以在评论区发一下啊,大家一起学习。
在这里插入图片描述
用下面代码生成npz文件对应的txt文件

def write_name():
    #npz文件路径
    files = glob.glob(r'./test\*.npz')
    #txt文件路径
    f = open(r'./test.txt','w')
    for i in files:
        name = i.split('\\')[-1]
        name = name[:-4]+'\n'
        f.write(name)

然后txt文件里面就会生成这个在这里插入图片描述
剩下的,把读取数据集里面的路径改一下就好了
在这里插入图片描述

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值