2

PythonでDICOM画像を処理するアプリを作成しています(Pydicomライブラリを使用)。残念ながら、私が読んだチュートリアル(fe here)によると、最初から存在すべきではない問題で立ち往生しています。

コードは単純で、次のようになります。

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

Pydicom 0.9.9 を pip でインストールしました (使用すると表示さpip listれます。PyDev プラグインを使用して Ecplipse でコードを書いています。

テキスト エディターは、「インポートからの未定義の変数: read_file」コメントで「read_file」部分が無効であることを検出し、コンパイラーは次のように言います。

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

奇妙なことに、ネットで入手できるチュートリアルの 1 つからコードを直接コピーしても、同じままです。そのトピックのソリューションを使用しても機能しません。私はゆっくりと合理的な解決策を使い果たしていますが、何が間違っているのかまだ完全にはわかりません。

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)
(...)

コマンドラインから実行すると、問題なく動作します。それにより、コードの何が問題なのか、さらにわからなくなります。

編集:コマンドラインまたはQt IPythonコマンドラインからコードを実行すると、Eclipse/PyDevだけがその問題を抱えているようです。問題なく動作します。では、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)をここからダウンロードしてインストールします(2016 年 1 月 26 日時点ではバージョン 2.7.10)
。次に、コマンド プロンプトで Scripts フォルダーに入力し、pip uninstall pydcom
「Pydicom を公式サイトからダウンロードします」と入力します。 (今日は 1.0.0)
解凍し、コマンド プロンプトでフォルダーを入力し、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 に答える