图片分割--UNet

1.网络结构

结构可以分为两部分 左边部分是编码结构,进行特征提取 右边是解码结果,进行特征还原

2.数据集准备

import os.path
from torchvision import transforms
from torch.utils.data import Dataset
from utils import *

#数据归一化
transform = transforms.Compose([
    transforms.ToTensor()
])


class MyDataset(Dataset):
    def __init__(self,path):
        self.path = path
        #获取索引的名字 E:\Pcproject\LB-UNet-main\isic2018\train
        self.name = os.listdir(os.path.join(path,'masks'))

    def __len__(self):
        return len(self.name)

    def __getitem__(self,index):
        segment_name = self.name[index]
        segment_path = os.path.join(self.path,'masks',segment_name)
        #原图地址
        image_path = os.path.join(self.path,'images',segment_name)
        #规范图片的大小尺寸
        segment_image = keep_image_size_open(segment_path)
        image = keep_image_size_open(image_path)
        return transform(image),transform(segment_image)

if __name__=='__main__':
    data = MyDataset('E:/Pcproject/pythonProjectlw/UNet')
    print(data[0][0].shape)
    print(data[0][0].shape)

数据图片规范函数:

from PIL import Image


def keep_image_size_open(path,size = (256,256)):
    #打开图像文件
    img = Image.open(path)
    #取最长边 获取图像尺寸 最长边
    temp = max(img.size)
    #创建空白图像
    mask = Image.new('RGB',(temp,temp),(0,0,0))
    #粘贴原始图像
    mask.paste(img,(0,0))
    #调整图像大小
    mask = mask.resize(size)
    #返回调整后的图像
    return mask

下面

### Mamba-UNet 项目概述 Mamba-UNet 是一种基于 UNet 架构并集成 Mamba 技术的先进解决方案,特别适用于医学图像分割领域[^1]。此项目不仅提供了高效的模型训练能力,还通过采用轻量化的 CNN 和 Transformer 替代方案来适应计算资源有限的实际医疗环境需求。 #### 项目目录结构及介绍 项目的文件夹布局遵循常见的 Python 包组织方式: - `data`: 存储数据集以及预处理后的样本。 - `models`: 放置定义好的神经网络架构代码- `utils`: 实用工具函数集合,如评估指标计算、可视化辅助等。 - `train.py`: 主要负责启动整个训练流程脚本。 - `predict.py`: 提供预测功能入口点,支持单张图片推理或多批次测试集批量处理。 #### 安装指南 为了顺利运行该项目,建议按照如下步骤完成依赖项安装: ```bash # 克隆仓库到本地机器上 git clone https://gitcode.com/gh_mirrors/ma/Mamba-UNet.git cd Mamba-UNet/ # 创建虚拟环境 (推荐Python版本 >=3.8) conda create -n mamba-unet python=3.9 conda activate mamba-unet # 安装必要的库和包 pip install -r requirements.txt ``` #### 配置说明 配置参数主要集中在`config.yaml` 文件内,用户可以根据具体应用场景调整超参设置,比如学习率、批大小、迭代次数等重要选项。对于硬件加速的支持,默认情况下会优先检测 GPU 是否可用;如果不存在,则自动切换至 CPU 模式执行运算操作。 #### 使用示例 下面给出一段简单的例子展示如何利用已训练完毕的模型来进行新输入图像的分类任务: ```python from predict import PredictPipeline import cv2 if __name__ == "__main__": pipeline = PredictPipeline(model_path="path/to/trained/model.pth") img = cv2.imread("test_image.png", flags=cv2.IMREAD_GRAYSCALE) result_mask = pipeline.predict(img) # 将结果保存为PNG格式文件 cv2.imwrite('output_segmentation_result.png', result_mask * 255) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值