vtkImageData到DcmDataset

时间:2014-01-16 13:17:00

标签: c++ vtk

我在vtkImageData中持有一个卷图像,需要将其转换为DcmDataset(DCMTK)。我知道我需要将常规DICOM标签(如患者数据)设置到数据集中。那不是问题。 特别是我有兴趣将像素数据放到DcmDataset。有人知道一个例子或者可以解释如何做到这一点吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

引用DCMTK FAQ

  

是否有工具可以转换常见的图形格式,如PGM / PPM,   PNG,TIFF,JPEG或BMP到DICOM?
       不,不幸的是,DCMTK中没有这样的工具。目前,您必须为此目的编写自己的小程序        工具包文档中的以下代码片段可以作为一个起点:

char uid[100];
DcmFileFormat fileformat;
DcmDataset *dataset = fileformat.getDataset();
dataset->putAndInsertString(DCM_SOPClassUID, UID_SecondaryCaptureImageStorage);
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
dataset->putAndInsertString(DCM_PatientsName, "Doe^John");
/* ... */
dataset->putAndInsertUint8Array(DCM_PixelData, pixelData, pixelLength);
OFCondition status = fileformat.saveFile("test.dcm", EXS_LittleEndianExplicit);
if (status.bad())
  cerr << "Error: cannot write DICOM file (" << status.text() << ")" << endl;
  

DCMTK的当前快照(&gt;版本3.5.4)包含一个新的快照   命令行工具“img2dcm”,允许将JPEG图像转换为   某些DICOM图像SOP类。

我可能会首先查看 img2dcm documented here)的源代码,以查看常规过程,然后回复任何具体问题。恕我直言,DCMTK非常强大但非常难以理解。