2

我正在编写一个应用程序来使用 Python 处理 DICOM 图像(使用 Pydicom 库)。不幸的是,根据我阅读的教程(fe here),我一开始就遇到了一个不应该存在的问题。

代码很简单,如下所示:

import dicom
dicomImage = dicom.read_file(MRI_img.dcm)
(...) other commands

我用 pip 安装了 Pydicom 0.9.9 (当我使用它时它是可见的pip list。我正在用 PyDev 插件在 Ecplipse 中编写代码。

文本编辑器发现“read_file”部分无效,带有“Undefined variable from import: read_file”注释,编译器说:

AttributeError: 'module' object has no attribute 'read_file'

奇怪的是,即使我直接从网上可用的教程之一复制一些代码,它仍然保持不变。使用该主题的解决方案也不起作用。我慢慢地用完了合理的解决方案,我仍然完全不知道出了什么问题。

PS 从 dicom/examples 文件夹打开示例 dicom 读取代码:

import sys
import dicom

# check command line arguments make sense
if not 1 < len(sys.argv) < 4:
print(__doc__)
sys.exit()

# read the file
filename = sys.argv[1]
dataset = dicom.read_file(filename)
(...)

从命令行执行时 - 它没有问题。这让我更不知道我的代码有什么问题。

编辑:好吧,似乎只有 Eclipse/PyDev 有这个问题,当我从命令行或 Qt IPython 命令行执行任何代码时,它都可以正常工作,没有任何问题。那么 Eclipse 可能有什么问题呢?你们中有人遇到过吗?

4

4 回答 4

2

我也只是做了一些研究,我得到了和你一样的错误,我发现原因很简单,发生在我身上的错误是,我将我的文件命名为dicom.py .....这个dicom.py是原因,您知道接下来会发生什么,只需将其重命名为testdicom.py或任何名称,只要不是dicom.py 即可解决您的问题

于 2016-07-13T09:32:22.510 回答
1

未来信息:

如果你有类似的问题(Windows 版本),我还没有找到原因,但有一个解决方案:

首先卸载您当前的Python版本,并删除剩余的python文件夹然后在此处
下载并安装新的Python(x,y)(版本2.7.10至2016年1月26日) 然后在命令提示符下进入Scripts文件夹并输入然后从官方网站 下载Pydicom (今天是 1.0.0) 解压缩,在命令提示符下输入文件夹,然后键入 Wait for a few moment until library installs。
pip uninstall pydcom

python setup.py install

之后,您可以(至少我可以)在 PyDev 中毫无问题地使用 pydicom 库,代码如下:

import pydicom
import numpy

dicomLoc = "C:\\MR000000.dcm"
ds = pydicom.read_file(dicomLoc)
print(ds.pixel_array)

导致将正确的像素阵列打印到控制台:

[[0 0 0 ..., 0 0 0]
 [0 0 0 ..., 0 0 1]
 [0 0 0 ..., 0 0 0]
 ..., 
 [0 3 0 ..., 0 2 5]
 [0 9 3 ..., 1 4 4]
 [0 2 0 ..., 0 7 1]]

从那一刻起,没有发现更多 Pydicom 或 PyDev 问题。

于 2016-01-26T21:08:29.257 回答
0

您想使用 pydicom 并且您的代码是

import dicom
dicomImage = dicom.read_file(MRI_img.dcm)

其实正确的代码应该是这样的

import pydicom
dicomImage = pydicom.read_file('MRI_img.dcm')
于 2019-09-20T20:49:27.430 回答
0

我认为您错过了一些引号,因此存在错误。

代码应该是这样的:

dicomImage = dicom.read_file("MRI_img.dcm");
于 2017-11-06T06:09:20.060 回答