采用pydicom+gdcm读取压缩DICOM图像(如JPEG Lossless)

简述
在读取DICOM医疗图像时,如果不涉及到压缩格式,一般pydicom就能处理并得到pixel_array。
但有时我们会遇到有压缩格式的dcm图像,于是需要结合其他package来处理,打开pydicom官网( https://pydicom.github.io/pydicom/stable/image_data_handlers.html )可以看到,作者对处理不同压缩形式的dcm数据有不同推荐方式。
采用pydicom+gdcm读取压缩DICOM图像(如JPEG Lossless)
对于一张JPEG Lossless的dcm图像,tag中会标明:
采用pydicom+gdcm读取压缩DICOM图像(如JPEG Lossless)
若试图直接用pydicm打开并读取pixel_array,则会报错:
采用pydicom+gdcm读取压缩DICOM图像(如JPEG Lossless)
安装gdcm后进行读取:
采用pydicom+gdcm读取压缩DICOM图像(如JPEG Lossless)
当然,也可以在上面加上一句import gdcm

安装过程
(1)先安装Swig(用于gdcm生成Python Wrapper),从Swig官网( http://www.swig.org/download.html )下载swig-3.0.12.tar.gz并安装。
(2)再安装GDCM,官网( http://gdcm.sourceforge.net/ )。
①下载gdcm_2.8.7.orig.tar.bz2
②解压缩:tar -jxvf gdcm_2.8.7.orig.tar.bz2
mkdir gdcm-build
cd gdcm-build/
cmake ../gdcm-2.8.7 -DGDCM_BUILD_SHARED_LIBS=ON -DGDCM_WRAP_PYTHON=ON -DGDCM_DOCUMENTATION=OFF -DGDCM_BUILD_EXAMPLES=OFF -DGDCM_BUILD_TESTING=OFF
make -j8
sudo make install
cd bin
cp gdcm.py gdcmswig.py _gdcmswig.so /home/User/virtualenv-16.0.0/TestVE/lib/python2.7/site-packages
⑩测试:进入python交互界面,输入import gdcm
采用pydicom+gdcm读取压缩DICOM图像(如JPEG Lossless)
若不报错则说明安装成功。