DICOM Library

本文汇总了多种编程语言下的DICOM库与工具,包括C/C++、C#、Java等,这些资源对于医疗图像处理领域的开发者来说非常实用。不仅提供了丰富的开源库选择,还涉及到了各库的特点与适用场景。

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

Developers used to search for libraries , frameworks even for similar applications to the projects they are working on  , The frameworks and libraries don’t only save the development and production time , but it extend  the capability  of the application and extend the features as well regarding the goals they made for and the the features they built with .

This list i made especially for developers who are seeking the exact library in their usable programming  language to work with . somehow most of the libraries have a very bad dark side ( NO documentation ) , but some of them really helpful and useful and with some search turns out they are usable , those ones have good support a long with very well written documentation .

DICOM

C , C++ :

Imebra - link:
Imebra is a multiplatform open source C++ Dicom library , its Open source licensed under GPL 3 or under a commercial license for commercial use  .Download from here .

SkullyDo – link:
Open Source and Portable object oriented software for 3D digital image segmentation and visualization. Pipes and Filters Architechture. Implemented in C++, and uses FLTK, VTK, ITK, TCL (plugins), and pipeline filters implemented in XML. DICOM support.

DICOMParserlink :
DICOMParser is a small, lightweight C++ toolkit for reading DICOM format medical image files. It builds on several platforms including Linux, AIX, HP-UX, IRIX, SunOS, Visual C++, Borland C++, and Cygwin. DICOMParser is used in VTK and ITK.

Grassroots DICOM - link :
Grassroots DiCoM is a C++ library for DICOM medical files. It is automatically wrapped to python/C#/Java (using swig). It supports RAW,JPEG (lossy/lossless),J2K,JPEG-LS,RLE and deflated. It also comes with DICOM Part 3,6 & 7 of the standard as XML files.

C#

DICOM# ( LGPL ) - link :
DICOM# open source project is intented to provide an OO class library for DICOM communication and will be developed purely by C# and running in .NET environment. DICOM# partially rewrites dcm4che open source project in C#.

DICOM sharplink :
DICOM software development library designed with rapid development support in mind and leveraging means of C# .

C# ECG Toolkitlink :
C# ECG Toolkit is an open source software toolkit to convert, view and print electrocardiograms. The toolkit is developed using C# .NET 1.1. Support for ECG formats: SCP-ECG, DICOM and HL7 aECG.

Java  :

dcm4chelink:
dcm4che is an implementation of DICOM and IHE actors in Java.

dicom4jlink:
dicom related framework and applications in java. The project is divide in 3 parts, the framework, a dicom toolkit, and dicom apps.

Eviewboxlink :
Eviewbox is a java imaging suite, its purpose is to view and spread native DICOM medical images and allowing for 2D reconstructions. EViewbox applet will allow to see the DICOM images on every platform.

Ruby :
Ruby DICOM – link :
RUBY DICOM is a cross-platform library for handling  DICOM files in the Ruby language. DICOM is a standard that is widely used throughout the world for saving and transmitting image data used in medicine. The library currently only supports reading files.

.Net :

openDICOM.NET - link :
DICOM library, console tools, DICOM viewer/browser for Mono/.NET and Beagle Desktop Search Plugin. The project supports ACR-NEMA and DICOM file formats and provides transcoding to XML. It is written in C# and licensed under (L)GPL.

Perl :
DICOM.pmlink :
DICOM.pm is a Perl library allowing interpretation of DICOM-compliant medical image files. It can be used by applications to transfer, interpret, and archive DICOM files.

Python :

pydicomliblink:
DICOM python library . It’s great for scripting quick-and-dirty DICOM related tasks, for example, opening a DICOM file, reading and modifying tags, communicating with DICOM servers etc via C-FIND, C-MOVE, C-STORE

pydicomlink :
Its a Python library to manipulate data elements in DICOM files with python . Its open source under MIT license .

Php :
File-DICOM-PHP – link , developer :
Its a PHP Dicom library .

Operating system specified :

Quick Dicom Toolkit ( OSX : BSD license  ) – link:
QuickDicom is an easy to use dicom medical imaging package for Mac OSX, providing QuickLook, Spotlight, Quartz Composer, Window/Level and a dicom file analyzer. Also included is the iiDicom Framework for image/dictionary usage in Objective C and Python.

iRad ( OSX ) – link :
iRad is a DICOM workstation written in Cocoa for MacOSX. Using QuickTime, OpenGL, and open source databases iRad aims to provide an easy and efficient way to review medical images from CT, MRI, ultrasound, and other DICOM sources such as angiography

DICOM Tools :

DICOM Router - link:
dcmrouter is a java-solution of a “Dicom Router” which is able to recieve Dicom Objects and transmit them after manipulating with plugins.

DICOM Anonymizerlink :
DICOM Anonymizer replaces the patient names in all the DICOM files in a folder (and sub-folders) with other strings you assigned. Works as a batch and works fast. Supports number index. Anonymizing is required for medical image processing.

DicomSciencelink:
DicomScience is a web based application server in order to provide the functionality of Teaching Files Archiving and Distribution to all DICOM based PACS Systems. Various forms of integration and easy installation shall make the use a walk in the park.

DIOWave Visual Storagelink:
DIOWave Visual Storage is a Web server which displays DICOM images. The look and feel of the Web pages are similar to imaging workstations.

 

 

add address

DVTK:http://dicom.dvtk.org/index.php

WinForm 本身是一个用于构建 Windows 桌面应用程序的用户界面框架,而 DICOM(Digital Imaging and Communications in Medicine)协议是一种用于医学图像和相关信息传输与交换的标准。要在 WinForm 应用程序中实现 DICOM 协议的功能,通常需要借助第三方库来处理 DICOM 文件和网络通信。 ### DICOM 实现概述 在 C# 中开发支持 DICOM 的 WinForm 应用程序时,开发者可以使用一些成熟的开源或商业库来简化开发流程。以下是一些常用的库以及它们的基本用法: #### 使用 fo-dicom 库 `fo-dicom` 是一个广泛使用的开源 DICOM 库,完全使用 C# 编写,并且兼容 .NET Framework 和 .NET Core/5+。它提供了完整的 DICOM 功能,包括文件读写、网络服务(C-ECHO, C-STORE 等)、DICOM 元数据解析等[^1]。 ##### 示例:加载 DICOM 文件并显示元数据 ```csharp using Dicom; using System; namespace DicomExample { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void LoadDicomFile(string filePath) { try { var dataset = DicomFile.Open(filePath).Dataset; // 获取患者姓名 string patientName = dataset.GetValue<string>(DicomTag.PatientName, 0); // 获取设备制造商 string manufacturer = dataset.GetValue<string>(DicomTag.Manufacturer, 0); Console.WriteLine($"Patient Name: {patientName}"); Console.WriteLine($"Manufacturer: {manufacturer}"); } catch (Exception ex) { MessageBox.Show($"Error loading DICOM file: {ex.Message}"); } } } } ``` ##### 示例:创建简单的 DICOM SCP(存储服务提供者) ```csharp using Dicom.Network; using Dicom.Log; using System; public class MyStorageProvider : DicomService, IHandle<DicomCStoreRequest> { public MyStorageProvider(INetworkStream stream, ILogger logger) : base(stream, logger) { } public void OnReceiveAssociationRequest(DicomAssociation association) { foreach (var pc in association.PresentationContexts) { if (pc.AbstractSyntax == DicomUID.ComputedRadiographyImageStorage) pc.AcceptTransferSyntaxes(DicomTransferSyntax.ExplicitVRLittleEndian, DicomTransferSyntax.ImplicitVRLittleEndian); } SendAssociationAccept(association); } public void OnRequest(DicomCStoreRequest request) { Console.WriteLine($"Received C-STORE for SOP UID: {request.SOPInstanceUID}"); request.Dataset.Save($"received_{request.SOPInstanceUID}.dcm"); request.Complete(); } } // 启动服务器 var server = DicomServer.Create<MyStorageProvider>(9999); Console.WriteLine("DICOM SCP is running on port 9999..."); Console.ReadLine(); ``` #### 使用 ClearCanvas DICOM Library ClearCanvas 是另一个可用于处理 DICOM 数据的开源项目,虽然其活跃度不如 `fo-dicom`,但仍然适合某些特定场景。ClearCanvas 提供了更复杂的 DICOM 网络功能,适合大型医疗影像系统集成。 #### 使用 Commercial Libraries(如 LeadTools 或 DevExpress) 对于企业级应用,也可以选择购买专业的 DICOM SDK,这些 SDK 通常包含完整的文档支持、GUI 控件和高性能优化,能够显著加快产品上市时间。 ### 注意事项 - **性能优化**:处理大尺寸 DICOM 图像时,需要注意内存管理和图像渲染效率。 - **安全性**:确保 DICOM 网络通信符合 HIPAA 等医疗数据安全法规要求。 - **跨平台兼容性**:如果计划将 WinForm 应用迁移到其他平台,应考虑库是否支持 .NET Core/.NET 5+。 ### 开发环境配置 在 Visual Studio 中创建 WinForm 项目后,可以通过 NuGet 安装所需的 DICOM 库,例如: ```bash Install-Package Dicom ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值