一份生成保存为自定义的DICOM文件的C++代码:
忙完补充之~~
对应程序可以稍加修改进行其他医学图像文件类型转换为DICOM文件并保存的操作;
int writeSpecificDicom(const std::string& srcDcmPath, const ImgType::Pointer& specificMask, const std::string& dcmOutFolder)
{
if(INPUT_PTR.IsNull()){
return -1;
}
DICOM READ--INPUT
//dcmReader
ADD MASK
//maskFilter
DICOM WRITE--OUTPUT///
itksys::SystemTools::MakeDirectory(dcmOutFolder);
typedef itk::ImagSeriesWriter<ImageType3d, ImageType2d> WriteType;
nameGenerator->SetOutputDirectory(dcmOutFolder);
ITK_PTR_CRT(WriteType, dcmWriter);
dcmWriter->SetMetaDataDirectionaryArray(dcmReader->GetMetaDataDirectionaryArray());
dcmWriter->SetFileNames(nameGenerator->GetOutputFileNames());
dcmWriter->SetImageIO(gdcmIO);
dcmWriter->SetInput(maskFilter->GetOutput());
try
{
dcmWriter->Update();
}
catch(itk::ExceptionObject &e)
{
std::cerr<<"caughtErr: "<< e << std::endl;
return 402;
}
return 0;
}