12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import numpy
- import config
- import SimpleITK
- import os
- import getData
- def guessPixelPosition(sx=-1,sy=-1,sz=-1):
- #guess position of segments
- if sx<0:
- sx=12
- if sy<0:
- sy=28
- if sz<0:
- sz=32
- rz=4
- oz=0
- slc=[sx,sy,sz]
- p1=[sx,sy,sz]
- #tip
- fp={'0':[\
- [sx,sy,sz],
- [sx-5,sy,sz],\
- [sx-2,sy,sz-rz],\
- [sx+3,sy,sz-rz],\
- [sx-2,sy,sz+rz-1],\
- [sx+3,sy,sz+rz]],\
- '1':[\
- [sx,sy,sz],
- [sx-5,sy,sz],\
- [sx-1,sy-rz,sz],\
- [sx-1,sy+rz-1,sz],\
- [sx+3,sy-rz,sz],\
- [sx+3,sy+rz,sz]],\
- '2':[\
- [sx,sy,sz],
- [sx,sy+rz+oz,sz],\
- [sx,sy+0.3*rz+oz,sz-rz],\
- [sx,sy-0.3*rz+oz,sz-rz],\
- [sx,sy-rz+oz,sz],\
- [sx,sy-0.3*rz+oz,sz+rz],\
- [sx,sy+0.3*rz+oz,sz+rz]]}
- return fp
-
- def getPatientNIM(r,setup):
- locDir=config.getLocalDir(r,setup)
- fileName=config.getNodeName(r,setup,'NM',19)+'.nrrd'
- f=os.path.join(locDir,fileName)
- im=SimpleITK.ReadImage(f)
- nim=SimpleITK.GetArrayFromImage(im)
- return nim
- def writeSegmentation(db,r,setup):
- locDir=config.getLocalDir(r,setup)
- fileName='{}_Segmentation.txt'.format(config.getCode(r,setup))
- idFilter={'variable':'PatientId','value':config.getPatientId(r,setup),'oper':'eq'}
- visitFilter={'variable':'visitName','value':config.getVisitId(r,setup),'oper':'eq'}
- rows=getData.getSegmentation(db,setup,[idFilter,visitFilter])
- v=numpy.zeros((len(rows),3))
- for qr in rows:
- region=int(qr['regionId'])
- v[region,2]=float(qr['x'])
- v[region,1]=float(qr['y'])
- v[region,0]=float(qr['z'])
- #for i in range(len(rows)):
- # print(v[i,:])
- numpy.savetxt(os.path.join(locDir,fileName),v)
-
|