如何使用python在DICOM文件上应用最大强度投影和最小强度投影?

问题描述

我想使用 python 在 DICOM 文件上应用最大强度投影和最小强度投影?我使用了来自 GitHub 的以下代码,但在为此函数提供图像时遇到了问题

def createMIP(np_img,slices_num = 15):
    ''' create the mip image from original image,slice_num is the number of 
    slices for maximum intensity projection'''
    img_shape = np_img.shape
    np_mip = np.zeros(img_shape)
    for i in range(img_shape[0]):
        start = max(0,i-slices_num)
        np_mip[i,:,:] = np.amax(np_img[start:i+1],0)
    return np_mip
import os
import numpy as np 
from pydicom import dcmread
from pydicom.data import get_testdata_file 
from PIL import Image
directory= "/home/"
f=os.listdir(directory)
size= len([name for name in os.listdir(directory) if os.path.isfile(os.path.join(directory,name))])
for root,dirs,files in os.walk(directory):
    for file in files:
        if file.endswith(".dcm"):
           path=os.path.join(directory,file)
           ds = pydicom.dcmread(path)
           img=ds.pixel_array
            A= createMIP(img)

它给出了以下错误

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-305-fc1fa862cfa8> in <module>
     13            ds = pydicom.dcmread(path)
     14            img=ds.pixel_array
---> 15            A= createMIP(img)

<ipython-input-294-dab2f30d1fa1> in createMIP(np_img,slices_num)
      6     for i in range(img_shape[0]):
      7         start = max(0,i-slices_num)
----> 8         np_mip[i,0)
      9     return np_mip

IndexError: too many indices for array

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)