擅长:python、mysql、java
<p>恭喜您选择Python来使用DICOM;在我的经验中,<a href="http://www.scipy.org/" rel="nofollow">SciPy</a>/numpy/matplotlib族在处理海量数据方面比MATLAB(或至少gnuoctave)要好得多。在</p>
<p>使用<a href="http://sourceforge.net/projects/gdcm/" rel="nofollow">GDCM</a>的python绑定、GDCM示例中的<a href="http://gdcm.sourceforge.net/html/ConvertNumpy_8py-example.html" rel="nofollow">ConvertNumpy.py</a>和<a href="http://matplotlib.sourceforge.net/" rel="nofollow">matplotlib</a>加载和显示代码:</p>
<pre><code>#!/usr/bin/env python
import gdcm
import ConvertNumpy
import numpy as np
import matplotlib.pyplot as plt
def loadDicomImage(filename):
reader=gdcm.ImageReader()
reader.SetFileName(filename)
reader.Read()
gdcmimage=reader.GetImage()
return ConvertNumpy.gdcm_to_numpy(gdcmimage)
image=loadDicomImage('mydicomfile.dcm')
plt.gray()
plt.imshow(image)
plt.show()
</code></pre>
<p>请注意,如果DICOM数据包含的“padding”值明显超出了图像的air-bone范围,则可能会混淆imshow的自动缩放;使用vmax、vmin参数来指定您实际想要查看的范围,或者实现您自己的窗口调平代码(这在numpy中是微不足道的)。在</p>