为了便于直观的看到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. 简单聊聊WebDAV

    1.什么是WebDAV? WebDAV是一种基于HTTP协议的扩展,旨在提供在Web服务器上进行文件管理的标准化解决方案.它允许用户通过网络对远程主机上的文件进行读写.编辑和删除操作.与传统的HTTP ...

  2. 轻量级SpringBoot Office文档在线预览框架

    框架简介 介绍:基于开源项目KkFileView源码提取出,封装成仅用于 Office文档预览(格式转换) 功能的一个通用组件; 原理是把Word转成PDF,PPT转成PDF,Excel转成HTML; ...

  3. docker centos8 java8 mysql8 部署springboot项目

    docker centos8 java8 mysql8 部署springboot项目 一,用idea将springboot项目打成jar包 二,将打的jar包用xshell的rz上传到docker的c ...

  4. Jmeter参数化5-JSON提取器

    后置处理器[JSON提取器] ,一般放于请求接口下面,用于获取接口返回数据里面的json参数值 1.以下json为例,接口返回的json结果有多组数据.我们要取出purOrderNo值 2.在jmet ...

  5. 【转载】 源码分析multiprocessing的Value Array共享内存原理

    原文地址: http://xiaorui.cc/archives/3290 ========================================================= 当第一次 ...

  6. 【问题解决】git status中文文件名乱码

    问题复现 解决办法 在git bash中直接执行如下命令 git config --global core.quotepath false 原因 通过 git config --help 可以查看到以 ...

  7. C#必备技能—项目打包

    C#项目打包 开发好一个软件后,交给客户去使用,这时需要对项目进行打包成一个.exe文件,怎么去做?(共三步) 前提 安装扩展:状态栏[扩展]-[管理扩展],搜索setup,点击安装(安装比较慢,等待 ...

  8. 分库分表后全局唯一ID的四种生成策略对比

    分库分表之后,ID主键如何处理? 当业务量大的时候,数据库中数据量过大,就要进行分库分表了,那么分库分表之后,必然将面临一个问题,那就是ID怎么生成?因为要分成多个表之后,如果还是使用每个表的自增长I ...

  9. 为什么MySQL 默认隔离级别是RR,又被阿里设置为RC

    我们知道,我们可以通过这个命令查看数据库当前的隔离级别,MySQL 默认隔离级别是RR. select @@tx_isolation; ANSI/ISO SQL定义的标准隔离级别有四种,从高到底依次为 ...

  10. sicp每日一题[2.3]

    Exercise 2.3 Implement a representation for rectangles in a plane. (Hint: You may want to make use o ...