zoukankan      html  css  js  c++  java
  • DCMTK3.6.0 (MT支持库)安装 完整说明

    环境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 FilesMicrosoft Visual Studio 10.0VClib。

    B. 在解压得到的支持库的文件夹下搜索include,应该得到5个文件夹,将这些文件夹复制到D:Program FilesMicrosoft Visual Studio 10.0VC下,选择合并文件夹(也就是将include文件夹下的内容全部复制到D:Program FilesMicrosoft Visual Studio 10.0VCinclude目录下)

    C. 将D:DCMTKdcmtk-3.6.0-win32-i386-support_MTopenssl-1.0.0cin下的三个文件复制到D:Program FilesMicrosoft Visual Studio 10.0VCin下。

    2. CMAKE编译

    A. 打开安装好的CMAKE。关闭所有跟VS有关的程序。在where is the source code里,选择你的dcmtk源代码的位置,我的源代码位置是D:DCMTKdcmtk-3.6.0。在where to build the binaries下选择你想存放build结果的文件夹,我新建了一个D:DCMTKdcmtk-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下会有安装路径,自选,不要选择带有中文的目录。

    E. 再次点击Configure。这回Configure很快,之后点击Generate。

    3. VS2010编译

    这时在D:DCMTKdcmtk-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 FilesDCMTK)就会有lib,bin,include,etc,share文件夹,里面就是之后写程序做医学图像处理所需要的库文件了!

    4. 一个小例程,进行简单的测试

    源代码:

    #include <dcmtkconfigosconfig.h>

    #include <dcmtkdcmdatadctk.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 FilesDCMTKinclude,这一步是为了让程序能够找到头文件。

    D. C/C++->code generation里,Runtime Library 选择/MTd,这一步是要和之前CMAKE的编译选项一致。

    E. Linker->General里,Additional Library Directories里填写上一步编译出来的lib文件夹,我的电脑上是D:Program FilesDCMTKlib,这一步是为了让程序能够找到之前编译好的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。

    Happy dcmtking!

  • 相关阅读:
    BZOJ 2212/BZOJ 3702
    BZOJ 4761 Cow Navigation
    BZOJ 3209 花神的数论题
    BZOJ 4760 Hoof, Paper, Scissors
    BZOJ 3620 似乎在梦中见过的样子
    BZOJ 3940 Censoring
    BZOJ 3942 Censoring
    BZOJ 3571 画框
    BZOJ 1937 最小生成树
    BZOJ 1058 报表统计
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/4911537.html
Copyright © 2011-2022 走看看