为了便于直观的看到2D标签,通常会将其转化为png图像,具体代码如下:

# coding:utf-8
from glob import glob
import os
import SimpleITK as sitk
from pathlib import Path
import numpy as np
import imageio
path = glob(r"D:\compation\kaggle\3D_preprocess\a\*") # 获取到该文件夹下所有的标签(3D nii文件)
save = Path(r"D:\compation\kaggle\3D_preprocess\a") # 保存路径
for i in range(len(path)):
file = path[i]
file_name = file.split("\\")[-1].split("_seg")[0]
case = file_name.split("_")[0]
print("case:{}, file_name:{}".format(case, file_name))
seg = sitk.ReadImage(file)
seg = sitk.GetArrayFromImage(seg)
for j in range(seg.shape[0]):
# png = np.zeros((seg.shape[1:]))
# print("j:",j)
save_path = save / case / file_name /"scans"
name = "slice_"+str(j)+str(seg.shape[1]) +"_"+str(seg.shape[2])+"_"+str(1.5)+"_"+str(1.5)
output = seg[j, ...]
Snapshot_img = np.zeros(shape=(seg.shape[1],seg.shape[2],3), dtype=np.uint8) # png设置为3通道
Snapshot_img[:, :, 0][np.where(output == 1)] = 255 #我们也有3个标签,其中值分别为1,2,3,所以我们需要给每个标签都赋予不同的通道
Snapshot_img[:, :, 1][np.where(output == 2)] = 255
Snapshot_img[:, :, 2][np.where(output == 3)] = 255 os.makedirs(save_path, exist_ok=True)
imageio.imwrite(os.path.join(save_path, name + '.png'), Snapshot_img[:, :, :])

结果:

利用3Dnii标签文件,生成png图片的更多相关文章

  1. 利用strut2标签自动生成form前端验证代码

    利用strut2标签自动生成form前端验证代码,使用到的技术有1.struts2标签,如<s:form> <s:textfieled>2.struts2读取*Validati ...

  2. Thymeleaf利用layout.html文件生成页面布局框架

    1.layout.html文件 生成布局 <!DOCTYPE html> <html lang="zh-CN" xmlns:th="http://www ...

  3. java通过jasper文件生成jpg图片

    iReport资料紧俏,整理好就赶紧传上来: 工具类:JpgExport public class JpgExportUtil { public static String Export(Map< ...

  4. [深入浅出WP8.1(Runtime)]生成图片和存储生成的图片文件

    7.2.3 使用RenderTargetBitmap类生成图片 RenderTargetBitmap类可以将可视化对象转换为位图,也就是说它可以将任意的UIElement以位图的形式呈现.那么我们在实 ...

  5. 利用Content-disposition实现无刷新下载图片文件

    今天在使用 tinypng.com 这个在线压缩图片的网站时,对其处理完图片后,可以无刷新下载图片感到好奇,于是了解了一下相关实现.无刷新下载可以利用MIME type或者设置Content-disp ...

  6. Python读取不同文件夹下的图片并且分类放到新创建的训练文件夹和标签文件夹

    在深度学习的训练时,经常会碰到训练的样本数据集和标签数据集是在一个文件夹中,这个时候我们就不得不进行一些数据的预处理和文件的分类,例如将训练(training data)数据集和标签数据集(label ...

  7. 利用a标签导出csv文件

    原文 简书原文:https://www.jianshu.com/p/a8687610cda3 大纲 1.需求分析 2.通过a标签实现文件导出 3.实现方式 1.需求分析 导出文件,使用最多的方式还是服 ...

  8. 利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析

    首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) ...

  9. 利用gsoap工具,通过wsdl文件生成webservice的C++工程文件

    一.下载gsoap文件,下载地址:https://zh.osdn.net/projects/sfnet_gsoap2/releases/ 二.以gsoap-2.8为例,解压到D盘,在D:/gsoap- ...

  10. [Android] 针对生成的图片文件在系统Gallery不显示的处理

    之前遇到过一个问题,就是发现我在程序中生成一个新的 Bitmap 之后,当我打开系统的 Gallery 查看时,并没有看到新生成的图像.然而打开文件浏览器,找到保存 Bitmap 所在的文件夹下,还能 ...

随机推荐

  1. ansible 001 ansible介绍 原理 主机清单 定义变量 提权与连接

    ansible 自动化运维 ansible 部署应用程序 (在操作系统层面之上) 系统初始化过程 主机名,yun源,网络,服务,时间同步,内核参数 (可以在pxe这里完成) ansible可以方便10 ...

  2. Jmeter察看结果树中文乱码的处理方法

    1.接口执行成功后,在察看结果树返回的Response信息显示中文乱码 2.处理方法: 到jmeter安装目录找到\bin\jmeter.properties文件.右键记事本打开文件定位到这行代码 & ...

  3. [银河麒麟] Samba的安装与配置

    什么是Samba以及它是干嘛的 Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet F ...

  4. 【PhpAdmin】小皮面板配置PhpAdmin

    1.先用面板开启MySQL和Apache服务 2.MySQL的端口不在3306,我改为3307 3.新建一个站点,声明域名和端口配置 没有配置本地域名映射,这个域名就没有什么用,还是依靠localho ...

  5. 路径规划综述博客:A* Optimizations and Improvements

    地址: https://lucho1.github.io/JumpPointSearch/ 原作者还开发了A* 算法的Windows系统上的小程序:(重点:小程序意义不大,这个综述还是不赖的) 项目地 ...

  6. 个人自家使用的路由器:水星D121G —— 1200M 11AC双频千兆无线路由器 D121G

    地址: https://www.mercurycom.com.cn/product-465-0.html

  7. AI大模型的技术之母 —— Attention Is All You Need —— Tansformer

    论文地址: https://arxiv.org/abs/1706.03762

  8. WM_CONTEXTMENU

    通知用户希望显示上下文菜单的窗口. 用户可能已在窗口中单击鼠标右键 (右键单击) .按 Shift+F10 或按应用程序键 (上下文菜单键) 某些键盘上可用 #define WM_CONTEXTMEN ...

  9. Linux——添加默认路由(能ping通本网段,但是ping不通其他网段)

    2024/07/15 1.问题描述 2.问题处理 3.其他问题 1.问题描述 昨天服务器突然断电,今天重启后,网络出了些问题,具体情况如下: 能ping通本机IP ping不通网关 ping不通本网段 ...

  10. navicat远程连接报错

    mysql,2003 can't connect to mysql server on 10038 我们连接远程服务器的mysql,如果出现问题,很大问题会出在服务器的端口和授权问题 # 首先我们通过 ...