C++ vtkImageData到DcmDataset

C++ vtkImageData到DcmDataset,c++,vtk,C++,Vtk,我在vtkImageData中保存一个卷映像,需要将其转换为DcmDataset(DCMTK)。我知道我需要将常规DICOM标签(如患者数据)设置到数据集中。这不是问题所在。 我特别感兴趣的是将像素数据放入DcmDataset。有人知道一个例子或者能解释怎么做吗 提前感谢引用: 是否有工具可以转换常见的图形格式,如PGM/PPM, PNG、TIFF、JPEG或BMP到DICOM? 不,不幸的是,DCMTK中没有这样的工具。目前,您必须为此编写自己的小程序。 工具箱文档中的以下代码片段可以作为起点

我在vtkImageData中保存一个卷映像,需要将其转换为DcmDataset(DCMTK)。我知道我需要将常规DICOM标签(如患者数据)设置到数据集中。这不是问题所在。 我特别感兴趣的是将像素数据放入DcmDataset。有人知道一个例子或者能解释怎么做吗

提前感谢

引用:

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

charuid[100];
DcmFileFormat文件格式;
DcmDataset*dataset=fileformat.getDataset();
数据集->putAndInsertString(DCM\u SOPClassUID,UID\u SecondaryCaptureImageStorage);
dataset->putAndInsertString(DCM\u SOPInstanceUID,dcmGenerateUniqueIdentifier(uid,站点\u实例\u uid\u根));
数据集->putAndInsertString(DCM_PatientsName,“Doe^John”);
/* ... */
数据集->putAndInsertUint8Array(DCM_PixelData,PixelData,pixelLength);
条件状态=fileformat.saveFile(“test.dcm”,EXS_LittleEndianExplicit);
if(status.bad())
瑟尔
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;