DCMTK与MDCM的比较选择

本文对比分析了DCMTK和mDCM两种DICOM开源库的特点,DCMTK具有跨平台性强、使用广泛及代码质量高的优势;而mDCM更适合C#项目,但使用用户较少。最终决定选用DCMTK。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需要使用Dicom,目前主流开源代码主要是DCMTK和mDcm。
1. DCMTK
详细介绍参见官网:http://www.dcmtk.org/

 

优点:
1) 跨平台

提供源码和封装的MT、MD库,可使用CMAKE等工具获取对应平台的工程。

2)使用用户多,使用时间长,不断有维护升级。其出现bug概率较小,重要问题也可指望会在后续得以解决。

3)使用资料较多。网络上资料较多,如 http://bbs.hc3i.cn/tag.php?name=dcmtk

4)源码注释较合理,代码编写质量较好,项目划分较为详细合理。

 

缺点:

1)使用VS等,需要使用CMAKE进行转化。

不过有具体的参考操作,只要配置正确应无问题。参见:http://bbs.hc3i.cn/thread-26234-1-1.html

2)不能直接供C#调用,需要封装成DLL。

封装方法:

A. 建立DLL项目,把所有文件重新包含后生成DLL;

B. 直接使用转化好的Lib和.h,建立DLL项目,根据需要把对应的方法包含进去,生成DLL。  这样做中间代码会多些,但可保护源代码和源工程,如果需要进一步升级,直接更换对应的lib和.h,涉及应用则只需要维护封装的DLL代码即可。(这也是我准备使用的方案)

3)需要同时熟悉C#和C++,后续维护需要有具备这方便技能的人员。

 

2. mDCM

详细见:https://github.com/ignacioinnovo/mdcm

 

优点:

1) 主要代码为C#编写,方便使用C#的工程使用。

2) 部分C++代码也已经封装成DLL,省去部分工作。

 

缺点:

1) 使用用户较少,潜在的bug风险较大。

2) C#部分代码注释量太少。

3) 针对大数据(如影像数组)操作,没有使用指针,性能上会差些。如果对读写速度有要求,则需要对此进行优化。

 

 

整体比较,决定使用DCMTK作为本项目的Dicom开源代码库。(另外还有程序员的私心:希望加强下C++相关知识)

最后向DCMTKmDcm等开源项目的开发和维护人员们致敬!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值