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!

  • 相关阅读:
    SAP CRM销售订单UI上的字段对应的数据库表存储字段:requested start date和end date
    SAP Fiori Elements里Drop down list的实现原理
    使用Fiori Elements创建的SAP UI5应用,如何支持编辑功能
    #开工新姿势#开启一年新征程,云社区叫你来充电啦!
    云小课 | 守护网络安全不是问题,iptables的四表五链为你开启“八卦阵”
    所见即搜,3分钟教你搭建一个服装搜索系统!
    AI辅助宫颈癌筛查技术全球居首,守护者的力量来源是?
    干货分享丨从MPG 线程模型,探讨Go语言的并发程序
    网络知识一箩筐:IP地址划分的那些知识点
    MindSpore:基于本地差分隐私的 Bandit 算法
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/4911537.html
Copyright © 2011-2022 走看看