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時按大小分割