python如何读取dcm轮廓

每张图片的位置

一个病人几十到上百张dcm图片,随便读取一张可以获得当次扫描的层厚 姓名 性别等信息,这里关注一个参数

ImagePositionPatient--> ['-270.0032', '-270.0032', '8.0000']


2018-07-16 18-45-46屏幕截图.png

这是本切片图像最左下角的点在三维体系中的坐标

结构信息

读取一个结构文件,关注 3006,0050


2018-07-16 18-54-32屏幕截图.png

(3006, 0048) Contour Number IS: '0'
(3006, 0050) Contour Data DS: ['-58.53585', '-33.32537166', '-22', '-60.64525', '-32.16835001', '-22', '-64.86405', '-32.08343772', '-22', '-66.36977304', '-31.11365', '-22', '-66.97345', '-30.56419552', '-22', '-69.08285', '-30.22890167', '-22', '-73.30165', '-30.12637375', '-22', '-75.41105', '-29.79527501', '-22', '-77.52045', '-29.01255474', '-22', '-79.62985', '-28.88529889', '-22', '-81.73925', '-28.09464102', '-22', '-83.84865', '-27.78841529', '-22', '-88.06745', '-25.83124959', '-22', '-90.17685', '-25.54335001', '-22', '-92.28625', '-24.22336438', '-22', '-94.39565', '-24.05996273', '-22', '-96.50505', '-23.23732311', '-22', '-98.61445', '-21.67967443', '-22', '-100.72385', '-21.13036898', '-22', '-102.83325', '-19.62297106', '-22', '-104.94265', '-18.32141744', '-22', '-107.05205', '-17.27733448', '-22', '-109.16145', '-15.37539726', '-22', '-111.27085', '-13.79899168', '-22', '-113.38025', '-13.00996422', '-22', '-114.2005722', '-12.12905', '-22', '-115.48965', '-11.06976436', '-22', '-117.59905', '-10.0602154', '-22',

Number IS对应结构轮廓的编号 如0是skin ,1是lung等
下面就是本轮廓的坐标信息,观察可以发现每一层上都有若干个点,这里的数据是把本轮廓所有三维坐标首尾相接形成一维数组x1,y1,z1,x2,y2,z2...

过程

综上所述,通过截取如取所有z=-22的点,然后寻找哪个dcm的图像的左下角的点的z坐标是-22,那么-22标记所有的x,y的点都属于本片dcm图片,按坐标取整一一读取即可。

轮廓绘图与源码

2018-07-16 19-12-40屏幕截图.png

matplot绘图效果
链接: https://pan.baidu.com/s/1rRpf2GKyQFdoNuljg1BA_A 密码: wucb

你可能感兴趣的:(python如何读取dcm轮廓)