python如何切割dicom文件并保存
Ⅰ python 数组切割
#!/usr/bin/envpython
#-*-coding:utf-8-*-
#py2.7
'''
没有考虑a,b列表数据长度异常情况,自己处理版
'''
fromitertoolsimportgroupby
a=[10,25,69,51,452,336,79,52,67,36,96,852]
b=[0,0,0,2,2,3,3,3,3,0,0,0]
tmp=0
d=[]
for_,vingroupby(b):
c=len(list(v))
d.append((tmp,tmp+c))
tmp=tmp+c
print'd:',d#按此下标分隔列权表a
print'res:',map(lambdai:a[i[0]:i[1]],d)
'''
d:[(0,3),(3,5),(5,9),(9,12)]
res:[[10,25,69],[51,452],[336,79,52,67],[36,96,852]]
'''
Ⅱ 利用python进行文本分割,每三行分成一个新文件
这个比较简单
i=0
fw=open('0.txt','w')
forlineinopen('fn.txt','r'):
fw.write(line)
i+=1
ifi%3==2:
fw.close()
fw=open(str(i)+'.txt','w')
fw.close()
差不多就这样,你试内试,我没容有测试
Ⅲ python如何将nii文件转换成dcm文件
有一个库叫做simpleitk,他提供函数可以直接读入nii文件然后可以存成内dcm的格式。
例如:
img=sitk.ReadImge(”容aa.nii”);
sitk.WriteImge(img,filename);
Ⅳ Python 对一个TXT文件进行分割 并最后生成三个txt文件
汉子,主要是要使用正确的编解码方式去识别
读取txt文件
将内容分为三部分
再分别写成txt文件即可
Ⅳ 使用python怎么实现dicom的标准接口传输
一般情况下,3D Slicer是一来个不错的自选择,尤其是如果需要对dicom数据进行进一步处理的话。
不过在拿到一堆数据以后,发现了一个3D Slicer的bug,因为医院给的数据是所有类型dicom数据都放在一起,直接导入slicer的话,就会出现问题,窗格显示为马赛克
也就是这个原因,让我跟3D Slicer 的开发者之一 Steve Pieper有了交流,非常感谢他的建议。
Ⅵ python如何用opencv把一个视频按每10秒一小段切下来
你好,下面是相应的一个代码,你可以参考一下:
importcv2
importos
#先导入openCV
#将一个长的视频缩短,按照比例缩短,只保存其中的一部分
#如下面代码就是将一个长视频每10秒取10秒,合并成一个短视频
cap=cv2.VideoCapture('myvideo.avi')
ifnotcap.isOpened():
print('videoisnotopened')
else:
#每秒25帧
num=0
#取10秒
needTime=250
#每10秒
timeSpace=250
#获取视频帧率
fps=cap.get(cv2.CAP_PROP_FPS)
#AVI格式编码输出XVID
videoWriter=cv2.VideoWriter('result//resultVideo_2.avi',cv2.VideoWriter_fourcc('X','V','I','D'),fps,frameSize=(320,288))
while(1):
success,frame=cap.read()
if(num%timeSpace<=needTime):
videoWriter.write(frame)
print('write'+str(num))
num=num+1
ifnotsuccess:
print('finished')
break
ifcv2.waitKey(100)&0xFF==ord('q'):
break
cap.release()
Ⅶ 请教,Python 如何对二进制文件进行分割,并保存到一个列表中
这个关键是要搞清楚服务器的要求(最好要接口文档),而不是先考虑你你本地怎么做
分割文件很简单,for循环即可搞定,当然应该容易搜到现成模块
Ⅷ python如何把一个字符串批量切割并转化成图片
把一个字符串机量七个不找化成图片,他是有技术含量的,必须请教专业人员帮你完成
Ⅸ 如何应用Python处理医学影像学中的DICOM信息
下面Python代码来演示如何编程处理心血管冠脉造影DICOM图像信息。
1. 导入主要框架:SimpleITK、pydicom、PIL、cv2和numpy
import SimpleITK as sitk
from PIL import Image
import pydicom
import numpy as np
import cv2
2. 应用SimpleITK框架来读取DICOM文件的矩阵信息。如果DICOM图像是三维螺旋CT图像,则帧参数则代表CT扫描层数;而如果是造影动态电影图像,则帧参数就是15帧/秒的电影图像帧数。
def loadFile(filename):
ds = sitk.ReadImage(filename)
img_array = sitk.GetArrayFromImage(ds)
frame_num, width, height = img_array.shape
return img_array, frame_num, width, height
3. 应用pydicom来提取患者信息。
def loadFileInformation(filename):
information = {}
ds = pydicom.read_file(filename)
information['PatientID'] = ds.PatientID
information['PatientName'] = ds.PatientName
information['PatientBirthDate'] = ds.PatientBirthDate
information['PatientSex'] = ds.PatientSex
information['StudyID'] = ds.StudyID
information['StudyDate'] = ds.StudyDate
information['StudyTime'] = ds.StudyTime
information['InstitutionName'] = ds.InstitutionName
information['Manufacturer'] = ds.Manufacturer
information['NumberOfFrames'] = ds.NumberOfFrames
return information
4. 应用PIL来检查图像是否被提取。
def showImage(img_array, frame_num = 0):
img_bitmap = Image.fromarray(img_array[frame_num])
return img_bitmap
5. 采用CLAHE (Contrast Limited Adaptive Histogram Equalization)技术来优化图像。
def limitedEqualize(img_array, limit = 4.0):
img_array_list = []
for img in img_array:
clahe = cv2.createCLAHE(clipLimit = limit, tileGridSize = (8,8))
img_array_list.append(clahe.apply(img))
img_array_limited_equalized = np.array(img_array_list)
return img_array_limited_equalized
Ⅹ 求一个脚本,如何利用python(python 2.7)分割超大的文本文件可以指定按大小或按行数
defsplitfile(filename,sizelimit,forline=True):
size=0
i=1
out=open("%s.%04d"%(filename,i),'w')
forlineinopen(filename):
size=size+1ifforlineelsesize+len(line)
if(size>sizelimit):
size=1ifforlineelselen(line)
out.close()
i+=1
out=open("%s.%04d"%(filename,i),'w')
out.write(line)
out.close()
if__name__=='__main__':
filename=raw_input("请输入要分隔的文件名:")
forline=raw_input("输入数字0按行分隔,输入其它按大小分隔(请输入:)")
forline=(int(forline)==0)
sizelimit=int(raw_input("请输入分割文件的大小:"))
splitfile(filename,sizelimit,forline)
函数splitfile的前二个参数为文件名,分割大小,,第三个参数为True时按行分割,为False时按大小分割