2024年5月22日发(作者:)
DCMTK3.6.0入门指南
By 郭俞伯
usher2007@
环境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代表debug版本),应该会
得到7个结果,将这些文件复制到一个单独的文件夹下,并把它们的名字中的_d去掉,例
如将zlib_重命名为。将重命名后的文件拷贝至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.0cbin下
的三个文件复制到D:Program FilesMicrosoft Visual Studio 10.0VCbin下。
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
#include
int main(void)
{
DcmFileFormat fileformat;
OFCondition oc = le("D:");
if(()){
OFString patientName;
if(aset()->findAndGetOFString(DCM_PatientName,
patientName).good())
{
std::cout<<"Patient Name:"< } } return 0; } A. 将文件放在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 里依次加上 ;;;;;;这一步是加入具体我们 程序需要的lib文件。网上很多的帖子中,都没有提到这个文件,可能是由于旧的 版本中并没有使用到这个文件。但是对于3.6.0版,这个lib文件是必需的。 G. Apply ,ok,编译工程,运行,命令行应该输出Patient Name:CHAI YI DONG。 Happy dcmtking!


发布评论