Here's an example that shows how to create a GSPS object with annotations and multiple image references:
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmpstat/dvpstat.h"
#include "dcmtk/dcmpstat/dvpsgr.h"
int main(int argc, char *argv[])
{
if (argc < 2)
{
COUT << "syntax usage: tstgsps <gsps-output> <image-input> ..." << OFendl;
return 1;
}
DcmFileFormat imageFile;
DVPresentationState pstate;
/* load and process image input files */
for (int i = 2; i < argc; i++)
{
if (imageFile.loadFile(argv[i]).good())
{
if (i == 2)
{
/* create default GSPS object from first image */
if (pstate.createFromImage(*imageFile.getDataset()).bad())
CERR << "Error: cannot create GSPS object from first image" << OFendl;
/* attach the first image (required for graphical annotations!)*/
if (pstate.attachImage(imageFile.getDataset(), OFFalse).bad())
CERR << "Error: cannot attach first image to GSPS object" << OFendl;
}
/* add further image references to GSPS object */
else if (pstate.addImageReference(*imageFile.getDataset()).bad())
CERR << "Error: cannot add image reference #" << (i -1) << OFendl;
} else
CERR << "Error: cannot load file '" << argv[i] << "'" << OFendl;
}
/* add graphical annotation, create a new layer first ... */
if (pstate.addGraphicLayer("MEASUREMENT").good())
{
/* ... and then a graphic object */
DVPSGraphicObject *graphic = pstate.addGraphicObject(pstate.getGraphicLayerIndex("MEASUREMENT"));
if (graphic != NULL)
{
const Float32 data[] = {100, 100, 250, 250};
graphic->setGraphicType(DVPST_polyline);
graphic->setData(2, data, DVPSA_pixels);
} else
CERR << "Error: cannot create graphic object" << OFendl;
} else
CERR << "Error: cannot add graphic layer" << OFendl;
DcmFileFormat gspsFile;
/* save GSPS object first to a DICOM data set ... */
if (pstate.write(*gspsFile.getDataset(), OFTrue).good())
{
/* ... and then to a DICOM file */
if (gspsFile.saveFile(argv[1], EXS_LittleEndianExplicit).bad())
CERR << "Error: cannot save file '" << argv[1] << "'" << OFendl;
} else
CERR << "Error: cannot write GSPS object to data set" << OFendl;
return 0;
}
------------------------------------------------------------------
柳北风儿
http://qimo601.iteye.com
转载:http://support.dcmtk.org/wiki/dcmtk/howto/gspsannotations
分享到:
相关推荐
zlib support: set "DCMTK_WITH_Z" to "ON" and "WITH_ZLIBINC" to the path where the zlib include files and libraries reside. OpenSSL support: set "DCMTK_WITH_OPENSSL" to "ON" and "WITH_OPENSSLINC" as ...
DCMTK(DICOM Toolkit)是一个开源软件库,它提供了处理DICOM数据所需的工具和API,使得开发者能够创建与DICOM兼容的应用程序。本压缩包“dicom.rar”包含了DCMTK的版本3.6.0,这是一个广泛使用的版本,适用于医疗...
/* create image object */ DcmImage image; /* read image from file */ status = image.readFromFile(argv[1]); if (status.good()) { /* get the pixel data */ unsigned long *pixelData; int nrRows...
5. **DCMTK_WITH_OPENSSL**:选中,启用OpenSSL支持,需要先安装`openssl-devel`。 6. **DCMTK_WITH_PNG**:选中,启用PNG图像格式支持,需要`libpng-devel`。 7. **DCMTK_WITH_THREADS**:选中,启用多线程支持。 8...
dcmtk使用手册,医学领域的东东,有学习的可以下载看看,没学过,不知道好不好学
DCMTK(Digital Imaging and Communications in Medicine - Toolkit)是一套开源的软件工具包,主要用于开发医学影像处理和通信的应用程序。这个工具集是基于DICOM(Digital Imaging and Communications in Medicine...
DCMTK(Digital Imaging and Communications in Medicine Toolkit)是开源软件库,主要用于开发医学影像通信标准(DICOM)的软件。这个3.6.0版本的官方帮助文档是开发者和使用者理解DCMTK的重要资源,提供了详尽的...
**Windows Qt环境下的DCMTK库** DCMTK(DICOM Toolkit)是一个开源软件库,专为处理DICOM(Digital Imaging and Communications in Medicine)标准而设计。DICOM是医学成像领域广泛使用的通信协议和数据格式标准。...
DCMTK攻略 DCMTK(DICOM Toolkit)是德国Offis公司开发的开源项目,旨在提供一个实现DICOM协议的平台,为开发者提供了一个便捷的开发环境。DCMTK提供了所有的源代码、支持库和帮助文档,支持多种操作系统,包括...
DCMTK 新手使用指南 DCMTK 是一个 DICOM 工具包,提供了 DICOM 协议的实现和DICOM 文件处理功能。作为新手,使用 DCMTK 可能会遇到很多疑惑之处。本文总结了 DCMTK 新手使用指南,旨在帮助大家快速上手 PACS 事业。...
DCMTK(DICOM ToolKit)是一套开源的软件库,专门用于开发处理DICOM(Digital Imaging and Communications in Medicine)标准的应用程序。DICOM是一种广泛应用于医疗成像领域的国际标准,它定义了医学图像和相关数据...
**Linux系统下的DCMTK-3.6.0详解** DCMTK(DICOM Toolkit)是一套开源的软件库和工具集,专为处理DICOM(Digital Imaging and Communications in Medicine)标准而设计,广泛应用于医学图像通信、医学影像处理和...
DCMTK,全称为"Digital Imaging and Communications in Medicine - Toolkit",是一个开源软件工具包,专为处理DICOM(Digital Imaging and Communications in Medicine)标准而设计。DICOM是一种广泛应用于医疗影像...
DCMTK(Digital Imaging and Communications in Medicine Toolkit)是一款开源的医学图像处理库,主要用于医疗影像数据的处理、传输和解析。这个压缩包提供的是已经针对Windows 10操作系统编译好的DCMTK工具集,意味...
DCMTK是一个开源的医学图像通信(DICOM)软件开发工具包,主要用于处理与DICOM标准相关的各种任务,如图像存储、查询、打印等。在这个"Dcmtk3.6.6.rar"压缩包中,包含了编译好的DCMTK库,适配于Visual Studio 2017在...
DCMTK(DICOM ToolKit)是一个开源的C++库,专门用于处理DICOM(Digital Imaging and Communications in Medicine)标准的医学图像数据。DICOM是医疗影像设备之间交换数据的标准格式,广泛应用于医疗成像领域,如CT...
名称:DCMTK 评级:★★★★★ 开源许可:BSD 功能: 影像处理,影像归档,影像管理,影像传输 标准:DICOM 语言:英语 客户端: 桌面 平台:跨平台 编程语言:C/C++ 官方网站:http://dicom.offis.de/
【标题】"基于DCMTK的DICOM图像查看器"是一个专门为医学图像处理设计的应用程序,它利用了开源的DCMTK库来实现对DICOM格式图像的读取、显示和解析。DICOM(Digital Imaging and Communications in Medicine)是医疗...
DCMTK库是一个开源的医学图像处理工具包,主要用于DICOM(Digital Imaging and Communications in Medicine)标准的实现。DICOM是医疗领域广泛采用的数据交换、存储和通信的标准格式。DCMTK库提供了丰富的API,可以...
DCMTK,全称是DICOM Toolkit,是一个开源软件包,专门用于处理DICOM(Digital Imaging and Communications in Medicine)标准的医疗图像数据。DICOM是一种国际标准,它定义了医疗成像设备之间以及与医疗信息系统之间...