最近一直在做实验,所以好久没有更新了,先把上周做的一些小的实验贴出来供大家分享。

在医生诊断时,是会将CT图像调整成不同的窗来处理的。比如说肺部CT吧,肺窗(窗宽为2000,窗位为-400)用于看小的肺结节;腹部窗(窗宽400,窗位40)用于看大的肺结节和纵隔淋巴结,还有骨窗。所以在处理CT图像的时候会需要选择不同的窗,那么怎么来使得你的.dcm文件.IMA文件.mhd文件以不同的窗宽窗位显示:# -*- coding=utf-8 -*-

import dicom

import os

import cv2

import numpy

from os.pathimport splitext

def getfile(file):

dcm = dicom.read_file(file)

img2 = dcm.pixel_array * dcm.RescaleSlope + dcm.RescaleIntercept

return img2def get_window_size(window_type):

if window_type =='lung':

center = -500

width =2000

elif window_type =='abdomen':

center =40

width =400

elif window_type =='bone':

center =300

width =2000

return center, width#调整CT图像的窗宽窗位

def setDicomWinWidthWinCenter(img_data, window_type):

img_temp = img_data

rows =len(img_temp)

cols =len(img_temp[0])

center, width = get_window_size(window_type)

img_temp.flags.writeable =True

min = (2 * center - width) /2.0 +0.5

max = (2 * center + width) /2.0 +0.5

dFactor =255.0 / (max - min)

for iin numpy.arange(rows):

for jin numpy.arange(cols):

img_temp[i, j] =int((img_temp[i, j]-min)*dFactor)

min_index = img_temp <0

img_temp[min_index] =0

max_index = img_temp >255

img_temp[max_index] =255

return img_temppath ='G:\lowdosect\CH_image/quater_dose_image\L067/'

for root, dirs, filesin os.walk(path):

for i in range(0,len(files),10):

filename = splitext(files[i])[0] +"." +"bmp"

print(filename)

#print(files[i])

im = getfile(path+files[i])

im1 = setDicomWinWidthWinCenter(im,'bone')

cv2.imwrite("G:\lowdosect\CH_image/bone/quarter/" + filename, im1)

还不太会编辑,所以可能空格会有问题,我是在数据集里每10张处理一张存储到新的数据集里,希望对大家有帮助!

matlab设置固定的窗宽窗位,python实现CT窗宽窗位的调整(即指定HU值保存图像)...相关推荐

  1. matlab设置固定的窗宽窗位,【经验谈】如何设定窗宽窗位,附正常人体组织CT值...

    让学习成为一种习惯! 医学影像服务中心拥有500病例征象+讲座 一般CT机可显示的CT值范围为-1000-+1000共2000个密度等级,而人的肉眼仅能识别16个灰阶,若把2000个CT值分成16个灰 ...

  2. 虚拟机下 linux 连接网络并设置固定ip

    1.测试一下能否ping通baidu,命令:ping www.baidu.com 2.  无法识别,修改网关配置,进入cd /etc/sysconfig/network-scripts,执行vi  i ...

  3. Chaquopy中不能导入64位Python训练的机器学习模型(32bit与64bit不兼容)

      我在Chaquopy中利用joblib来load一个在pycharm中写好的AdaBoost模型: from joblib import dump, load filename = join(di ...

  4. CT图像之Hu值变换与窗宽窗位调整

    今天通过分析实验结果,完善了之前的预处理代码,借此博文分享给大家,另外 点击此处可以查看预处理的完整代码,欢迎大家一起来完善. 最重要的是,欢迎大家的批评指正,您的建议和意见将会是我成长源泉. 接下来 ...

  5. CT医学影像的窗高窗位、CT值(Hu值)

    CT医学影像的窗高窗位.CT值(Hu值) 1.CT医学影像的窗高窗位.CT值(Hu值)学习 CT扫描层面 冠状位. 矢状位.横断位的基本定义及部分正常人体组织的CT值(Hu)[CT扫描层面 冠状位. ...

  6. 开启微信悬浮窗权限有什么用_华为微信悬浮窗设置

    手机为例,微信开启悬浮窗的方法为: 1.首先在手机桌面上打开[设置]应用,然后在设置页面点击[应用]选项进入. 2.接着打开[权限管理],再点顿面右上角的[权限]一项进入. 3.之后点击[悬浮窗],并 ...

  7. datagridview固定列宽_winform中的DataGridView的列宽设置

    DataGridView有一个属性AutoSizeColumnMode,他有很多枚举值: 1.AllCells 调整列宽,以适合该列中的所有单元格的内容,包括标题单元格. 2.AllCellsExce ...

  8. VMware虚拟机安装CentOS6.4、部署web项目全过程(设置固定IP、安装JDK、Tomcat、Redis、部署项目)...

    概述:该篇随笔介绍了在VMware上安装centOS.在centOS上安装JDK.安装Tomcat.安装Redis并部署项目的全过程,虽然参考了很多优秀的文章,但实践.整理.补充都很用心,若要复制粘贴 ...

  9. python遗传算法VRP硬时间窗(毕设纪念)

    内容简介 纪念毕设,同时弥补了上个遗传算法的漏洞,虽然这次没有优化遗传算法的性能,但是遗传算法的思想和功能表现出来了.毕设做的是多起送点,多目标的配送路线优化,硬时间窗,三种货物或以下.目标函数追求: ...

最新文章

  1. AAAI2022最新「关系数据因果推理」报告,181页PPT阐述因果推理在网络数据中研究进展...
  2. Platform Builder和Embedded visual C++简介
  3. IP与DSCP优先级
  4. 链表常见面试题二:约瑟夫环
  5. MFC 自定义消息四步曲与在参数中传递变量
  6. [react] react16跟之前的版本生命周期有哪些变化?
  7. elasticsearch date_Elasticsearch在日志分析领域应用和运维实践
  8. python自学网站需要多长时间-怎么自学python,大概要多久?
  9. Android实现EditText禁止输入换行符但可以根据内容自动换行的解决方法
  10. 运用C#在采集时进行自动验证登录[转]
  11. php 父子id,父子关系PHP / MYSQL
  12. 机器视觉算法(数据结构)
  13. Java程序员常用软件
  14. Unity 粒子特效 之 LogoEffect ParticleSystem 文字图片logo粒子特效
  15. Excel学习笔记:P1-Excel入门
  16. HTTP接口的请求参数类型有哪些
  17. 默安科技关键信息基础设施安全防护论文入选中文核心期刊
  18. Android N 的新特性
  19. 半透明旋转魔方特效的实现
  20. OpenCV图像特征SIFT

热门文章

  1. 图灵奖获得者、信息安全常青树Adi Shamir:从密码学到AI对抗性样本研究|智源大会嘉宾风采...
  2. k8s 基础概念和术语
  3. Nim游戏(初谈博弈)
  4. 简单的HTTP协议——《图解http》第二章
  5. Android——检查网络是否已经链接
  6. bzoj1532: [POI2005]Kos-Dicing
  7. 关于字节对齐以及内存占用
  8. Php通过gsoap调用c++ websevice
  9. kendo grid输入框验证方法
  10. 动态生成lookup字段