MONAI的测试与使用(一)

news2024/9/25 17:11:51

MONAI的测试与使用(一)

  • 一.Transform 的分类
  • 二 普通变换和字典变换的联系与区别
  • 三 加载与显示图像

一.Transform 的分类

在这里插入图片描述
具体API函数请参考文档:https://docs.monai.io/en/latest/transforms.html

二 普通变换和字典变换的联系与区别

普通变换又可以说是基于数组的变换:image和label是以数组形式给到Dataset。字典变换是基于字典的变换(image和label是一个字典对)。
普通变换和字典变换的功能是一样的,只是字典变换在每个transform后面都加了一个"d", 也可以写成”D“。如LoadImage/LoadImaged, Resize/Resized
使用字典变换时,必须指明该变换是对image做,还是label做。如,LoadImaged(keys=‘image’),表明只加载image

三 加载与显示图像

# -*- coding : UTF-8 -*-
# @file   : monai_03.py
# @Time   : 2023-08-02 18:17
# @Author : wmz

import os
import glob
import matplotlib.pyplot as plt

from monai.transforms import (
    AsDiscreted,
    AddChanneld,
    Compose,
    CropForegroundd,
    SpatialPadd,
    ResizeWithPadOrCropd,
    LoadImaged,
    Orientationd,
    RandCropByPosNegLabeld,
    ScaleIntensityRanged,
    KeepLargestConnectedComponentd,
    Spacingd,
    ToTensord,
    RandAffined,
    RandFlipd,
    RandCropByPosNegLabeld,
    RandShiftIntensityd,
    RandRotate90d,
    EnsureTyped,
    Invertd,
    KeepLargestConnectedComponentd,
    SaveImaged,
    Activationsd
)

if __name__ == "__main__":
    print("processing")
    data_dir = r"E:\BaiduNetdiskDownload\Flare2021"
    train_images = sorted(
        glob.glob(os.path.join(data_dir, "imagesTr", "*.nii.gz")))
    train_labels = sorted(
        glob.glob(os.path.join(data_dir, "labelsTr", "*.nii.gz")))
    data_dicts = [
        {"image": image_name, "label": label_name}
        for image_name, label_name in zip(train_images[:4], train_labels[:4])
    ]
    train_data_dicts, val_data_dicts = data_dicts[:2], data_dicts[-2:]

    # 1. 加载数据与打印信息
    loader = LoadImaged(keys=("image", "label"))
    data_dict = loader(train_data_dicts[0])
    print(f"image shape: {data_dict['image'].shape}")
    print(f"label shape: {data_dict['label'].shape}")
    print("max pixel val:{}".format(data_dict["image"].max()))
    print("min pixel val:{}".format(data_dict["image"].min()))
    print(f"image pixdim:\n{data_dict['image_meta_dict']['pixdim'][2]}")
    print(f"image dim:\n{data_dict['image_meta_dict']['dim']}")
    print(f"data_dict keys:{data_dict.keys()}")
    print(f"data_dict img_meta_dict :{data_dict['image_meta_dict'].keys()}\n")
    print(f"data_dict img_meta_dict :{data_dict['image_meta_dict'].values()}\n")
    # 2. 显示
    image, label = data_dict["image"], data_dict["label"]
    plt.figure("visualize", (8, 4))
    plt.subplot(1, 2, 1)
    plt.title("image")
    plt.imshow(image[:, :, 132], cmap="gray")
    plt.subplot(1, 2, 2)
    plt.title("label")
    plt.imshow(label[:, :, 132])
    plt.show()

在这里插入图片描述

参考:MONAI Transform 分析和使用
参考:MONAI-如何加载图像
官方参考文档
MONAI API 文档

[MONAI(3)—一文看懂各种Transform用法(上)_51CTO博客_transforms用法详解](https://blog.51cto.com/u_16159492/6481601#:~:text=MONAI (3)—一文看懂各种Transform用法(上) 1 1.数据准备 2 2. 加载NIfTI 格式的文件【,%2F ScaleIntensityRanged] 5 5 空间变换 [Rotate90d %2F Resized])

MONAI-如何加载图像_@左左@右右的博客-CSDN博客

MONAI(4)—一文看懂各种Transform用法(下)_cropforegroundd_Tina姐的博客-CSDN博客

tutorials/2d_classification/mednist_tutorial.ipynb at main · Project-MONAI/tutorials · GitHub

2.monai——transform数据处理_randcropbyposneglabeld_Jorko的浪漫宇宙的博客-CSDN博客

一款专门为医学图像定制的框架(MONAI),太好用了!_Tina姐的博客-CSDN博客

使用MONAI深度学习框架进行3D图像空间变换_不入流儿的博客-CSDN博客

医学图像深度学习3D数据增强之MONAI框架方法利用 - 知乎 (zhihu.com)

GitHub - JunMa11/AbdomenCT-1K: The official repository of “AbdomenCT-1K: Is Abdominal Organ Segmentation A Solved Problem?”

monai.tansforms.xxx 常用函数&作用_mri数据扩充randgaussiannoise_Tina姐的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/833012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DAY2,C高级(shell脚本的使用)

1.今日思维导图&#xff1b; 2.递归实现&#xff0c;输入一个数&#xff0c;输出这个数的每一位&#xff1b; #include<my_head.h>void Output(int num) {if(num 0)return;Output(num/10);printf("%d ",num%10);}int main(int argc, const char *argv[]) {in…

软件测试自动化selenuim的常用方法和属性总结

selenuim其实主要就是使用webdriver实例对象的方法和属性。 常用属性 1 driver.current_url 当前网页的请求地址 2 driver.current_window_handle 句柄&#xff0c;用于页面切换 3 driver.page_source 网页源代码 4 driver.title 网站的title&#xff0c;tab栏上显示的内容…

『Linux学习笔记』Linux服务器硬件配置查看

Linux服务器硬件配置查看 文章目录 一. 操作系统1.1. 发行版本1.2. 查看内核版本 二. CPU2.1. CPU统计信息2.2. CPU型号2.3. 查看物理CPU数目2.4. 每个物理CPU的核数2.5. 查看逻辑CPU的个数 三. GPU四. 内存4.1. 内存使用情况4.2. 内存硬件情况4.3. 查看内存使用信息 五. 硬盘…

幂等性问题 —— 如何防止重复创建订单

幂等性&#xff1a;对接口的多余重复调用的结果和单次调用的结果一致。 一、需要幂等性的场景 二、幂等性实现方案 核心思想&#xff1a;首先要根据业务判断什么是重复相同的请求&#xff0c;然后相同的请求都携带或生成一个唯一的识别码&#xff0c;这样在服务端就可以进行判…

JVM调优工具详解以及实战

准备 事先启动一个web应用程序&#xff0c;用jps查看进程id&#xff0c;接着用各种jdk自带的命令优化应用 Jmap jmap -histo 6160 #查看历史生成的实例 jmap -histo:live 6160 #查看当前存活的实例&#xff0c;执行过程中可能会触发一次full gc jmap -histo:live 6160 &…

关于数据仓库那些事 - 数据质量和数仓主题

数字化时代&#xff0c;数据成为了人类社会中必不可少的元素&#xff0c;也变成了现代企业经营管理中的关键。借助海量的数据&#xff0c;企业进行了深层次的数字化改革&#xff0c;把数据当成了企业发展的核心&#xff0c;但无效的数据即使规模再大&#xff0c;也对企业没有意…

EasyExcel工具类,一键实现表格导入导出,有无对应实体类均可

EasyExcel工具类&#xff0c;一键实现表格导入导出&#xff0c;有无对应实体类均可 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存&#xff0c;poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题&#xff0c;但…

linux du命令解析(递归计算文件子目录大小)(计算大小)(计算容量)

文章目录 du命令简介用法常用选项示例 文档原 中文选项详细解释示例递归统计某个目录下所有文件大小&#xff08;不足单位会向上取整&#xff09;&#xff08;注意&#xff1a;可能会将目录大小也统计进去&#xff0c;目录大小为4096字节4kb&#xff1f;&#xff09; du命令使用…

【第一阶段】kotlin语言的String模板

1.在Java中拼接字符串使用的是“” 2.在kotlin中使用"${}" 3.kotlin语言中if是表达式&#xff0c;更灵活 fun main() {val city"西安"val time24//java中写法println("我在"city"玩了"time"小时")//kotlin中写法&#xff0…

2023年华数杯C题思路

c题 母亲身心健康对婴儿成长的影响 母亲是婴儿生命中最重要的人之一,她不仅为婴儿提供营养物质和身体保护,还为婴儿提供情感支持和安全感。母亲心理健康状态的不良状况&#xff0c;如抑郁、焦虑压力等&#xff0c;可能会对婴儿的认知、情感、社会行为等方面产生负面影响。压力…

一文读懂芯片内存

1.导读 一个芯片通常需要三种主要的物理内存类型&#xff1a;SRAM、Flash和DDR。 SRAM&#xff08;静态随机存储器&#xff09;&#xff1a;SRAM是一种高速、易访问和易擦写的存储器类型。它通常用于存储变量、缓冲区、堆栈和其他动态数据。SRAM的特点是读写速度快&#xff0c…

指针经典笔试题强训(附图详解)

目录 笔试题1&#xff1a; 解析&#xff1a; 运行结果&#xff1a; 笔试题2 解析&#xff1a; 运行结果&#xff1a; 笔试题3 解析&#xff1a; 运行结果&#xff1a; 笔试题4 解析&#xff1a; 运行结果&#xff1a; 笔试题5 解析&#xff1a; 运行结果&#xff1a;…

基于人工智能的状态监测帮助结束冷却塔的维护“噩梦”

冷却塔是将水蒸气冷却成较低温的水、将系统的废热排到大气层的排热装置&#xff0c;在工业生产中扮演着不可或缺的关键角色。大型工业冷却塔的主要用途是用来冷却在水冷系统中的循环水。这些水冷系统广泛应用于发电厂、炼油厂、石化厂、天然气制造厂、食品加工厂、半导体厂等工…

<C++> 类和对象(上) 面向对象

1.面向对象 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c; 通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完成。 2.类 C语言结构…

基于 JavaScript 的富文本编辑器框架简单使用

1.打开wangEditor wangEditor开源 Web 富文本编辑器&#xff0c;开箱即用&#xff0c;配置简单https://www.wangeditor.com/ 2.html文件 <link href"https://unpkg.com/wangeditor/editorlatest/dist/css/style.css" rel"stylesheet"> <style&…

竞争之王CEO商战课,聚百家企业在京举行

竞争之王CEO商战课&#xff0c;于2023年7月29-31日在北京临空皇冠假日酒店举办&#xff0c;近百家位企业家齐聚一堂&#xff0c;共享饕餮盛宴。 竞争之王CEO商战课是打赢商战的第一课。 竞争环境不是匀速变化&#xff0c;而是加速变化。 在未来的市场环境中&#xff0c;企业间…

一种新型的系统设计解决方案:模块树驱动设计

1.前言 系统设计的核心作用是在业务现实世界和抽象的IT实现之间建立起一道桥梁。 与其他行业被物理特性限制所束缚不同&#xff0c;软件世界可以变得无限庞大&#xff0c;而限制软件发展的其实是人的认知能力。所有软件设计服务的目标其实都是管理人的认知&#xff0c;是关于人…

Excel功能总结

1&#xff09;每一张表格上都打印表头 “页面布局”-->“打印标题”-->页面设置“工作表”页-->打印标题“顶端标题行” 如&#xff1a;固定第1~2行&#xff0c;设置成“$1:$2” 2&#xff09;将页面内容打印在一页【缩印】 1.选好需要打印的区域&#xff0c;“页面布…

挠曲疲劳测试系统比例阀放大器

挠曲疲劳测试系统技术是用于测试材料、部件、产品等在重复弯曲应变下的疲劳性能的技术。该技术通过在试样上施加重复弯曲应力和应变&#xff0c;模拟材料、部件、产品在实际使用环境中的弯曲疲劳行为。 挠曲疲劳测试系统由试验设备、控制系统和数据分析系统组成。试验设备包括…

精通GPU编程,高效处理Pandas

大家好&#xff0c;当正在使用python处理大型数据集&#xff0c;那么很可能会感受到&#xff0c;当基于CPU的pandas DataFrame难以执行操作时&#xff0c;等待数小时才能完成查询的挫败感。正是在这种情况下&#xff0c;pandas用户应该考虑使用RAPIDS cuDF利用GPU的强大功能进行…