天天看點

VS2010+DCMTK3.6.0 : MT支援庫 安裝說明

關于DCMTK3.6.0在VS2010環境下的安裝,我是按照下面的介紹安裝成功。

一、基于DCMTK的DICOM相關程式編寫攻略:

         http://blog.csdn.net/jackmacro/article/details/5332654

二、DCMTK3.6.0 (MT支援庫)安裝 完整說明 

         http://blog.163.com/[email protected]/blog/static/158220932012113771496/

從上面部落格中學到的知識是:

(一)、庫和支援庫的下載下傳位址

       前言:

       由于現在的醫學影像裝置的圖像存儲和傳輸正在逐漸向DICOM标準靠攏,在我們進行醫學圖像處理的過程中,經常需要自己編寫和DICOM格式的圖像相關的各種程式子產品,以完成自己處理功能。如果從頭開始了解DICOM的協定,然後完全自己編寫這些代碼來實作這些協定,是一件工程浩大的事情。德國offis公司開發的DCMTK,為我們提供了實作DICOM協定的一個平台,使得我們可以在它的基礎上輕松的完成自己的主要工作,而不必把太多的精力放在實作DICOM協定的細節問題上。本文以WINDOWSXP+VC6.0為開發平台,從DCMTK的下載下傳、調試、使用等方面介紹基于DCMTK的DICOM相關程式編寫過程。

       1、 DCMTK簡介

       DCMTK是由德國offis公司提供的開源項目,并擁有相應的版權。這個開發包經過10多年的開發和維護,已經基本實作了DICOM協定的所有内容。該開發包提供所有的源代碼、支援庫和幫助文檔。DCMTK提供了在各種作業系統下使用的可能版本,如LINUX、SUN、WINDOWS等,使用者可更具自己的開發平台進行編譯。目前DCMTK的版本是3.5.3。

       2、DCMTK的下載下傳

       DCMTK公司的首頁是: http://dicom.offis.de。

      1、首先下載下傳DTMTK源代碼。可以通過以下位址:ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk353/dcmtk-3.5.3.zip

      2、下載下傳相關的支援庫:ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk353/support/dcmtk-3.5.3-win32-i386-support.zip

(二)、安裝過程

       By 郭俞伯

       環境WIN7 + VisualStudio2010 + dcmtk3.6.0 + Cmake2.8.6

       準備工作:

        從dcmtk官方網站下載下傳源代碼及支援庫檔案。分别名為:dcmtk-3.6.0 dcmtk-3.6.0-win32-i386-support_MT.(注意,要下載下傳***support的壓縮檔案,而不要下載下傳上面單獨列出來的支援庫)。将這些壓縮檔案解壓縮到硬碟上一個單獨的檔案夾裡,我的解壓縮目錄是D:\DCMTK\。

        從cmake官方網站下載下傳cmake的安裝檔案,我下載下傳的是最新的2.8.6版。将其安裝到計算機任意目錄下。

正文:

        1. 将支援庫中的相應lib檔案,include檔案,bin檔案拷貝到VS2010安裝目錄的相應檔案夾下。

        A. 在解壓得到的支援庫的檔案夾下搜尋_d.lib檔案(_d代表debug版本),應該會得到7個結果,将這些檔案複制到一個單獨的檔案夾下,并把它們的名字中的_d去掉,例如将zlib_d.lib重命名為zlib.lib。将重命名後的檔案拷貝至VS2010安裝目錄下的lib檔案夾下,在我的電腦上是D:\Program Files\Microsoft Visual Studio 10.0\VC\lib\。

        B. 在解壓得到的支援庫的檔案夾下搜尋include,應該得到5個檔案夾,将這些檔案夾複制到D:\Program Files\Microsoft Visual Studio 10.0\VC\下,選擇合并檔案夾(也就是将include檔案夾下的内容全部複制到D:\Program Files\Microsoft Visual Studio 10.0\VC\include\目錄下)

        C. 将D:\DCMTK\dcmtk-3.6.0-win32-i386-support_MT\openssl-1.0.0c\bin下的三個檔案複制到D:\Program Files\Microsoft Visual Studio 10.0\VC\bin\下。

        2. CMAKE編譯

        A. 打開安裝好的CMAKE。關閉所有跟VS有關的程式。在where is the source code裡,選擇你的dcmtk源代碼的位置,我的源代碼位置是D:\DCMTK\dcmtk-3.6.0。在where to build the binaries下選擇你想存放build結果的檔案夾,我建立了一個D:\DCMTK\dcmtk-bin 的檔案夾。

        B. 點選Configure,選擇編譯環境。我的電腦上裝的VS2010,是以我選擇的Visual Studio2010。點選finish。等待configure完成。這中間會出現***not found的資訊,忽略它們。

        C. 這時候CMAKE會列出所有的支援庫的名字,勾選上openssl,png,tiff,xml和zlib,其他的保持預設。

        D. 勾選上Advanced複選框,這是下面的内容變多了。将所有的/MD改成/MT,/MDd改成/MTd。CMAKE_INSTALL_PREFIX下會有安裝路徑,自選,不要選擇帶有中文的目錄。(我要用的東西不多,是以我隻選擇了debug版本的編譯)

        E. 再次點選Configure。這回Configure很快,之後點選Generate。

        3. VS2010編譯

        這時在D:\DCMTK\dcmtk-bin下會多出來很多檔案夾和檔案。用VS2010打開其中的sln檔案。在一個solution下會有很多個project。

        A. 點選Build->Batch Build,選擇ALL_BUILD的debug版,點選右邊的Build。耐心等待。會有很多個warning,應該是由字元編碼不統一引起的。最後會看到78個編譯 成功,0個失敗。

        B. 之後,再選擇Build->Batch Build,這次選擇INSTALL的debug版本,點選右邊的Build。最後會顯示3個工程編譯成功,這時在你選擇的安裝目錄下(預設是C:\Program Files\DCMTK)就會有lib,bin,include,etc,share檔案夾,裡面就是之後寫程式做醫學圖像處理所需要的庫檔案了!

        4. 一個小例程,進行簡單的測試

        源代碼:

#include <dcmtk\config\osconfig.h>

#include <dcmtk\dcmdata\dctk.h>

int main(void)

{

        DcmFileFormat fileformat;

        OFCondition oc = fileformat.loadFile("D:\\021A3C1C.dcm");

        if(oc.good()){

        OFString patientName;

        if(fileformat.getDataset()->findAndGetOFString(DCM_PatientName, patientName).good())

        {

                std::cout<<"Patient Name:"<<patientName<<std::endl;

        }

        }

        return 0;

}

        A. 将021A3C1C.dcm檔案放在D盤根目錄下。

        B. 建立一個empty win32 console application,在source檔案夾下建立一個cpp檔案,把以上源代碼複制粘貼進去。

        C. 右鍵單擊工程名,選擇屬性(properties),在Configuration Properties->C/C++->General下,Additional Include Directories裡加入上一步編譯出來的include檔案夾,我的電腦上是D:\Program Files\DCMTK\include,這一步是為了讓程式能夠找到頭檔案。

        D. C/C++->code generation裡,Runtime Library 選擇/MTd,這一步是要和之前CMAKE的編譯選項一緻。

        E. Linker->General裡,Additional Library Directories裡填寫上一步編譯出來的lib檔案夾,我的電腦上是D:\Program Files\DCMTK\lib,這一步是為了讓程式能夠找到之前編譯好的lib檔案。

        F. Linker->Input裡,在Additional Dependencies 裡依次加上wsock32.lib;netapi32.lib;ofstd.lib;oflog.lib;dcmdata.lib;zlib.lib;這一步是加入具體我們程式需要的lib檔案。網上很多的文章中,都沒有提到oflog.lib這個檔案,可能是由于舊的版本中并沒有使用到這個檔案。但是對于3.6.0版,這個lib檔案是必需的。

        G. Apply ,ok,編譯工程,運作,指令行應該輸出Patient Name:CHAI YI DONG。