4

私はdicom画像を読まなければならないプロジェクトに取り組んでいます。

dcmtkをインストールできません。私はwin764ビットとvs2010を使用しています。

プログラムにdcmtkを含める手順を説明してください。

4

4 に答える 4

18

Windows+ DCMTK+を使用するには、QT次の手順を実行する必要があります。

  • DCMTKをコンパイルします(ステップ1.A)
  • サンプルアプリケーションを作成します(ステップ2)
  • コンパイル/インストールされたDCMTKライブラリを参照してQTプロジェクトファイルを作成します(ステップ3.B)
  • IDEでアプリケーションをコンパイルします(ステップ4.B)

あなたがこれを読んでいて、Qtを使いたくないのであれば、私はQtのないバージョンにも答えています。

Windows + VisualStudio + DCMTK:ステップ1.A、、2および3.A4.A

Linux + GCC + DCMTK :ステップ1.B、、、2N/A4.C


1)DCMTKをコンパイルします

まず、アプリケーションでDCMTKライブラリを使用するには、DCMTKソースコードをコンパイルしてライブラリを生成する必要があります。

私がこれを書いている間、最後に利用可能なバージョンは3.6.0です。だから、私たちはそれをダウンロードする必要があります:

ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk360/dcmtk-3.6.0.zip

ダウンロードが完了したら、フォルダを解凍する必要があります。DCMTKソースにはプロジェクトファイルがありませんが、問題はありません。目的のオペレーショナルシステム/コンパイラでプロジェクトファイルを生成するためのCMakelistファイルがあります。CMakeツールに慣れていない場合は、こちら(https://cmake.org/)で詳細を読むことができます。

1.A)Windows / VisualStudio2012でのコンパイル

1.A.1)コンパイラをインストールする必要があります。私の場合はVisualStudio2012でした。

1.A.2)を実行して、VisualStudio2012へのプロジェクトファイルを生成します。DCMTKディレクトリに入力CMake toolできる必要があります。source

1.A.3)次に、VisualStudio 2012を実行slnし、前の手順(2)で作成したファイルを開いて、ターゲットをコンパイルします。ALL_BUILD

Admin1.A.4)VisualStudioをモードで再実行して(権限があるためC:\Program Files)、ターゲットをコンパイルしますINSTALL(DCMTKをデフォルトのパスにコピーしてインストールします: 、 PATH_WHERE_DCMTK_WAS_INSTALLEDC:/Program Files/DCMTK/などを参照できます)

(1.B)GNU /LinuxGCCでのコンパイル

私はUbuntu/CentOSでテストしました。まず、DCMTK Source次の3つのコマンドに移動して実行する必要があります。

$ ./configure --prefix=path_to_dcmtk
$ make all
$ sudo make install

例:path_to_dcmtk = / home / user / dcmtk


2)サンプルアプリケーションの作成

your_sample/testapp.cxx次の内容で呼び出されるファイルを作成します。これは、DCMTKフォーラムでDICOMファイルを開き、患者の名前を印刷するためのデモです。

#include "dcmtk/dcmdata/dctk.h"
#include <iostream>
using namespace std;

int main()
{
   DcmFileFormat fileformat;
   OFCondition status = fileformat.loadFile("test.dcm");
   if (status.good())
   {
      OFString patientsName;
      if (fileformat.getDataset()->findAndGetOFString(DCM_PatientName, patientsName).good())
      {
         cout << "Patient's Name: " << patientsName << endl;
      }else{
         cerr << "Error: cannot access Patient's Name!" << endl;
      }

   }else{
      cerr << "Error: cannot read DICOM file (" << status.text() << ")" << endl;
   }
   return 0;
}

3)コンパイラとしてVisuaStudioを使用してアプリケーションプロジェクトを作成する

前のステップで作成したファイルをプロジェクトに配置する必要があります。オプションWindows VisualStudio (3.1)と。のどちらかを選択できます Windows Qt (3.2)。Linuxを使用している場合は、この手順をスキップできます。

3.A)Visual Studio2012IDEを搭載したWindows

Visual Studioプロジェクトを作成するには、を使用して、、Wizardなどの必要な設定を行うことができます。ただし、この回答を簡単にするために、を使用してVisual Studio 2012のプロジェクトを作成します。したがって、を作成してください。次の内容で呼び出されたファイル:LinkerLibrariesCMakeList.txtyour_sample/CmakeList.txt

PROJECT(testapp)

SET(DCMTK_DIR ABSOLUTE_PATH_WHERE_DCMTK_WAS_INSTALLED)
#an example: SET(DCMTK_DIR "C:\\Users\\test\\test_dcmtk\\DCMTK")

# settings for Microsoft Visual C++ 6
SET(CMAKE_C_FLAGS "/nologo /W3 /GX /Gy /YX")
SET(CMAKE_C_FLAGS_DEBUG "/MTd /Z7 /Od")
SET(CMAKE_C_FLAGS_RELEASE "/MT /O2")
SET(CMAKE_CXX_FLAGS "/nologo /W3 /GX /Gy /YX")
SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od")
SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2")

ADD_DEFINITIONS(-D_REENTRANT)

INCLUDE_DIRECTORIES(${DCMTK_DIR}/include)
LINK_DIRECTORIES(${DCMTK_DIR}/lib)

ADD_EXECUTABLE(testapp testapp)
TARGET_LINK_LIBRARIES(testapp netapi32 wsock32 ofstd dcmdata)

3.B)コンパイラとしてVisuaStudioを使用するWindows QtCreator IDE

QtCreatorIDEのプロジェクトファイルを作成します。your_sample/my_project.pro次の内容で呼び出されるファイルを作成する必要があります。

SOURCES += testapp.cxx
CONFIG += debug console
DEFINES += _REENTRANT

QMAKE_CFLAGS_RELEASE -= -MD
QMAKE_CFLAGS_RELEASE = -MT
QMAKE_CFLAGS_DEBUG -= -MDd
QMAKE_CFLAGS_DEBUG = -MTd
QMAKE_CXXFLAGS_RELEASE -= -MD
QMAKE_CXXFLAGS_RELEASE += -MT
QMAKE_CXXFLAGS_DEBUG -= -MDd
QMAKE_CXXFLAGS_DEBUG += -MTd

INCLUDEPATH += (RELATIVE_PATH_WHERE_DCMTK_WAS_INSTALLED)/include
#an example: INCLUDEPATH += ../../../test_dcmtk/DCMTK/include

LIBS += -L"(RELATIVE_PATH_WHERE_YOU_INSTALLED_DCMTK)/lib" \
-ladvapi32 \
-ldcmdata \
-loflog \
-lofstd \
-lws2_32 \
-lnetapi32 \
-lwsock32
#an example: LIBS += -L"../../../test_dcmtk/DCMTK/lib" \

4.A)Visual Studio2012IDEを搭載したWindows

でプロジェクトファイルを開き、VisualStudioをクリックしBuildます。

4.B)コンパイラとしてVisuaStudioを使用するQtCreatorIDEを備えたWindows

でプロジェクトファイルを開き、QTをクリックしBuildます。

4.C)GNU/Linux-GCCを使用したコマンドライン

g++ testapp.cxx -DHAVE_CONFIG_H -I/path_to_dcmtk/include -L/path_to_dcmtk/lib -pthread -ldcmdata -lz -loflog -lofstd -o main

ライブラリをモードでコンパイルしたかどうかに関係なくDEBUG、アプリケーションもモードでコンパイルする必要があることに注意してくださいDEBUG


参考文献

于 2012-09-03T20:27:17.013 に答える
2

Dcmtkのインストール手順に従ってください。ライブラリをプロジェクトに含める方法がわからない場合は、qmakeのマニュアルを参照してください。

于 2011-02-20T07:31:35.540 に答える
1

Common Toolkitの担当者は、これらの問題のいくつかに対処しています。InsightToolkitを使用することもできます

http://www.commontk.org/index.php/Main_Page

http://itk.org

実際、ITK wikiには少しドキュメントがありますが、ITKはdcmtkの代わりにgdcmを使用しています。

http://www.itk.org/Wiki/ITK_FAQ#How_to_read_a_volume_from_a_DICOM_series

于 2011-04-22T03:51:21.817 に答える
1

QtにDCMTkを実装したプロジェクトがあります。これをQtDICOMと呼び、多くの製品の基盤を形成しています(http://fluxinc.ca/medical)/。一見の価値があります(https://bitbucket.org/fluxinc/qt-dicom)。構成については特に詳しく説明していませんが、見ればわかるでしょう。

注:これは、構築され、さまざまなパスに含まれているDCMTkに依存します。

于 2016-01-11T01:57:21.657 に答える