对python读取CT医学图像的实例详解
需要安装OpenCV和SimpleItk。
SimpleItk比较简单,直接pip install SimpleItk即可。
代码如下:
#coding:utf-8 import SimpleITK as sitk import cv2 #LKDS-00058,-102.655469971,108.188810974,438.759994507,12.2279986879 if __name__ == '__main__': filename = "F:/cancer_solution/data/train_subset00/LKDS-00058.mhd" ds = sitk.ReadImage(filename) img_array = sitk.GetArrayFromImage(ds) frame_num, width, height = img_array.shape outpath = "F:/cancer_solution/out/train/LKDS-00058" index = -1 for img_item in img_array: index = index + 1 cv2.imwrite("%s/%d.png"%(outpath,index),img_item) print "done!"
如上所示,就将CT影像解析成了多个单幅图片。
目前还不太理解(x,y,z)坐标是如何对应的。
但祈世间人无病,何愁架上药生尘。癌症,终有一天可以被战胜。
以上这篇对python读取CT医学图像的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python使用post及get方式提交数据的实例
最近在使用Python的过程中,发现网上很少提到在使用post方式时,怎么传一个数组作为参数的示例,此处根据自己的实践经验,给出相关示例: 单纯的post请求: def http_post(): url = "http://152.1.12.11:8080/web" postdata = dict(d=2, p=10) post = [] post.append(postdata) req = urllib2.Request(url, json.dumps(post)) #需要是jso
-
python list中append()与extend()用法分享
1. 列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型. 2. append() 方法向列表的尾部添加一个新的元素.只接受一个参数.3. extend()方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中. append()用法示例: >>> mylist = [1,2,0,'abc'] >>> mylist [1, 2, 0, 'abc'] >>> mylist.append(4) >>> myl
-
Python对象与引用的介绍
对象 Python 中,一切皆对象.每个对象由:标识(identity).类型(type).value(值)组成. 1. 标识用于唯一标识对象,通常对应于对象在计算机内存地址.使用内置函数 id(obj)可返回对象 obj 的标识. 2. 类型用于表示对象存储的"数据"的类型.类型可以限制对象的取值范围以及可执行的操作.可以使用 type(obj)获得对象的所属类型. 3. 值表示对象所存储的数据的信息.使用 print(obj)可以直接打印出值. 对象的本质:一个内存块,拥有特定的值
-
在python中利用opencv简单做图片比对的方法
下面代码中利用了两种比对的方法,一 对图片矩阵(m x m)求解特征值,通过比较特征值是否在一定的范围内,判断图片是否相同.二 对图片矩阵(m x m)中1求和,通过比较sum和来比较图片. # -*- coding: utf-8 -*- import cv2 as cv import numpy as np import os file_dir_a='C:\Users\wt\Desktop\data\image1\\' file_dir_b='C:\Users\wt\Desktop\data\
-
python append、extend与insert的区别
最近在自学Python语言,看到向列表增加更多数据时被append(),extend(),insert()方法绕晕了. append 和extend都只需要一个参数,并且自动添加到数组末尾,如果需要添加多个,可用数组嵌套,但是 append是将嵌套后的数组作为一个对象, extend是将嵌套的数组内容作为多个对象,添加到原数组中 作为编程0基础的小白,觉得有必要自己再梳理一遍: 1.append()方法是指在列表末尾增加一个数据项. 例如:在students列表末尾增加"Gavin"
-
Python字典的核心底层原理讲解
字典对象的核心是散列表.散列表是一个稀疏数组(总是有空白元素的数组),数组的每个单元叫做 bucket.每个 bucket 有两部分:一个是键对象的引用,一个是值对象的引用.所有 bucket 结构和大小一致,我们可以通过偏移量来读取指定 bucket.下面通过存储与获取数据的过程介绍字典的底层原理. 存储数据的过程 例如,我们将'name' = '张三' 这个键值对存储到字典map中,假设数组长度为8,可以用3位二进制表示. >>> map = {} >>> map
-
Python可视化mhd格式和raw格式的医学图像并保存的方法
mhd格式的文件里面包含的是raw图像的一些头信息,比如图片大小,拍摄日期等等,那么如何可视化图像呢? import cv2 import SimpleITK as sitk import matplotlib.pyplot as plt import numpy as np image =sitk.ReadImage(path) image = sitk.GetArrayFromImage(image) #image = np.squeeze(image[slice, ...]) # if t
-
python列表操作之extend和append的区别实例分析
本文实例讲述了python列表操作之extend和append的区别.分享给大家供大家参考.具体如下: li = ['a', 'b', 'c'] li.extend(['d', 'e', 'f']) print li print len(li) print li[-1] li = ['a', 'b', 'c'] li.append(['d', 'e', 'f']) print li print len(li) print li[-1] 运行结果如下: ['a', 'b', 'c', 'd', '
-
正确理解Python中if __name__ == '__main__'
在Python,我们经常会编写 if __name__ == '__main__' 这么一段代码,这段代码该怎么来理解? 这段代码的功能理解如下: 一个python的文件有两种使用的方法: 作用一,直接作为脚本执行. 作用二,import到其他的python脚本中被调用(模块重用)执行. if __name__ == '__main__': 的作用就是控制这两种情况执行代码的过程,在if __name__ == '__main__': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执
-
Python中extend和append的区别讲解
append() 方法向列表的尾部添加一个新的元素.只接受一个参数. >>> num = [1,2] >>> num.append(3) >>> num [1, 2, 3] >>> num.append('a') >>> num [1, 2, 3, 'a'] >>> num.append(6,7) Traceback (most recent call last): File "<p
随机推荐
- SQL SERVER 2005 最小安装经验
- Java基于Socket实现简单的多线程回显服务器功能示例
- 浅谈window对象的scrollBy()方法
- ASP.NET获取不到JS设置cookies的解决方法
- 在Go程序中实现服务器重启的方法
- Google 爬虫如何抓取 JavaScript 的内容
- JavaScript编写带旋转+线条干扰的验证码脚本实例
- JSP中实现判断客户端手机类型并跳转到app下载页面
- IE6 fixed的完美解决方案
- 如何在SQL SERVER 2005存储过程中,使用循环语句
- 错误代码:1100 Table 't_depart_info' was not locked with LOCK TABLES的解决方法
- Discuz! 6.1_jQuery兼容问题
- 结构/表现/行为完全分离的选项卡(jquery版和原生JS版)
- 在jquery boxy中添加百度地图坐标拾取注意流程
- jQuery+CSS3折叠卡片式下拉列表框实现效果
- Java简单数组排序(冒泡法)
- db_owner权限得到webshell我的两点改进
- Java String方法获取字符出现次数及字符最大相同部分示例
- java页面中文乱码的解决办法
- Django rest framework基本介绍与代码示例