因为项目需要把CT图像中骨头更加明确的显示出来,且还需要保存nii文件,所以查了一些资料,在这里做一下笔记,方便以后使用。代码如下:

import nibabel as nib
import numpy as np
import SimpleITK as sitk
center = 350 # 窗位
width = 1200 # 窗宽 filename = 'E:/个人/骨折检测/分割项目/HDC-Net-master/mydata/RibFrac1-image.nii.gz'
img = nib.load(filename)
img_fdata = img.get_fdata() min = (2 * center - width) / 2.0 + 0.5
max = (2 * center + width) / 2.0 + 0.5 dFactor = 255.0 / (max - min) img_fdata[img_fdata<min] = min
img_fdata[img_fdata>max] = max
# 进行转置,因为需要按照原来的方向进行保存
data = np.transpose(img_fdata, [2, 1, 0])
(z, y, x) = data.shape
print(z," ",y," ",x)
for i in range(z):
for j in range(x):
for k in range(y):
value = data[i,j,k]
if value <= min:
value = 0
elif value < max:
value = (value - min) / width * 255
elif value >= max:
value = 255
else:
data[i,j,k] = value
#进行保存
print("-----------------")
filesname = "RibFrac1.nii.gz"
img = sitk.GetImageFromArray(data)
sitk.WriteImage(img, filesname)
print("+++++++++++++++++")

将nii文件CT图像更改窗宽窗位之后保存成nii文件的更多相关文章

  1. C#开发PACS医学影像处理系统(十四):处理Dicom影像窗宽窗位

    概念解释(网络资料): 窗宽: 窗宽指CT图像所显示的CT 值范围.在此CT值范围内的组织结构按其密度高低从白到黑分为16 个灰阶以供观察对比.例如,窗宽选定为100 Hu ,则人眼可分辨的CT值为1 ...

  2. C#处理医学图像(二):基于Hessian矩阵的医学图像增强与窗宽窗位

    根据本系列教程文章上一篇说到,在完成C++和Opencv对Hessian矩阵滤波算法的实现和封装后, 再由C#调用C++ 的DLL,(参考:C#处理医学图像(一):基于Hessian矩阵的血管肺纹理骨 ...

  3. tcpdump抓包并保存成cap文件

    首选介绍一下tcpdump的常用参数 tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接 ...

  4. 爬B站并保存成csv文件。提供数据

    """b站排行榜爬虫(scrapy)https://www.bilibili.com/ranking#!/all/0/0/7/爬取编号,标题,url,综合评分,播放量,评 ...

  5. opencv::将两幅图像合并后,在同一个窗口显示;并将合并的图像流保存成视频文件

    /** * @file main-opencv.cpp * @date July 2014 * @brief An exemplative main file for the use of ViBe ...

  6. 缓存1 静态缓存-->读库保存成php文件 mkdir-->file_put_contents-->var_export -->include

    @mkdir()-->file_put_contents-->$data =  "<?php\nreturn ".var_export($setting, tru ...

  7. InputStream流保存成图片文件

    public void saveBit(InputStream inStream) throws IOException{ ByteArrayOutputStream outStream = new ...

  8. Android吧数据保存成xml文件

    public class MainActivity extends Activity { private List<Person> persons; @Override protected ...

  9. python文件目录遍历保存成xml文件代码

    Linux服务器有CentOS.Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在 ...

  10. 将网页中的html代码的table保存成word文件

    1.后台代码: string nowtime = DateTime.Now.ToString("yyyy-MM-dd"); Response.Clear(); Response.B ...

随机推荐

  1. 2、SpringBoot2之入门案例

    2.1.创建Maven工程 2.1.1.创建空项目 2.1.2.设置项目名称和路径 2.1.3.设置项目sdk 2.1.4.项目初始状态 注意:需要关闭项目再重新打开,才能看到SpringBoot-P ...

  2. 【Web】实现页面自动刷新的功能

    技术发现自: https://www.bilibili.com/video/BV14v411b7JS?p=8 摘要自CSDN帖子: https://blog.csdn.net/senbar/artic ...

  3. 【JDBC】Extra01 Oracle-JDBC

    关于驱动包依赖: 官网提供的地址: https://www.oracle.com/database/technologies/jdbc-drivers-12c-downloads.html Maven ...

  4. 【SpringSecurity】01 授权、认证、注销

    [前提情要] Security学习地址: https://www.bilibili.com/video/BV1KE411i7bC 狂神的微信笔记: https://mp.weixin.qq.com/s ...

  5. 全地形人形机器人(humanoid)是否只能进行短距视野感知呢 —— 实时地形感知

    相关: https://capital.lenovo.com/news/detail/id/924/s/1.html 常见的人形机器人都是测试其手臂灵活度为主,但是近日看到一款以全地形步态行走为主的机 ...

  6. DolphinScheduler 3.3.0版本更新一览

    Apache DolphinScheduler即将迎来3.3.0版本的发布,届时将有一系列重要的更新和改进.在近期的社区5月份用户线上分享会上,项目PMC 阮文俊为大家介绍了3.3.0版本将带来的主要 ...

  7. Java反射初探123456789

    牛逼的框架都反射,不要问我为什么,因为我也不知道 可能是因为生成了class文件没法实例化,所以只能反射创建对象,但是在spring中,ioc就是反射实现的控制反转 看Spring4.x企业级开发实战 ...

  8. 朋友吐槽我为什么这么傻不在源生成器中用string.GetHashCode, 而要用一个不够优化的hash方法

    明明有更好的hash方法 有位朋友对我吐槽前几天我列举的在源生成器的生成db映射实体的优化点 提前生成部分 hashcode 进行比较 所示代码 public static void Generate ...

  9. abc366-cnblog

    [E](E - Manhattan Multifocal Ellipse (atcoder.jp)) 解题思路 这题求的是满足\(\sum^n_{i=1}(|x-x_i|+|y-y_i|)\leq D ...

  10. 第 358 场周赛 - 力扣(LeetCode)

    第 358 场周赛 - 力扣(LeetCode) 2815. 数组中的最大数对和 - 力扣(LeetCode) 双for遍历即可 class Solution { public: int maxSum ...