[Insight-users] Changing a DICOM Header... in a DICOM Series
Bill Lorensen
bill.lorensen at gmail.com
Wed Nov 19 07:29:36 EST 2008
Try
std::string entryId("0008|103e");
instead of
std::string entryId("008|103e");
Bill
On Wed, Nov 19, 2008 at 6:53 AM, Stéphane CALANDE <scalande at gmail.com> wrote:
> Hi itk-list,
>
>
> I'm using the example of "DicomSeriesReadSeriesWrite", but I'd like to
> modify one DICOM header field before writing the Series.
>
> Then I had a look in "DicomImageReadChangeHeaderWrite" and I tried to apply
> the part of the code that change the header field into the code of
> "DicomSeriesReadSeriesWrite".
>
>
> But it doesn't seem to work. The field I want to change has not changed in
> the output files. Could you have a look in the (simplified) following code
> to help me ?
>
>
>
> typedef signed short PixelType;
> const unsigned int Dimension = 3;
> typedef itk::Image< PixelType, Dimension > ImageType;
> typedef itk::ImageSeriesReader< ImageType > ReaderType;
> typedef itk::ImageFileReader< ImageType > ReaderMHDType;
> typedef itk::GDCMImageIO ImageIOType;
> typedef itk::GDCMSeriesFileNames NamesGeneratorType;
>
> ImageIOType::Pointer gdcmIO = ImageIOType::New();
> NamesGeneratorType::Pointer namesGenerator = NamesGeneratorType::New();
>
> namesGenerator->SetInputDirectory( [...DIRECTORY...] );
>
> const ReaderType::FileNamesContainer & filenames =
> namesGenerator->GetInputFileNames();
>
> ReaderType::Pointer reader = ReaderType::New();
>
> reader->SetImageIO( gdcmIO );
> reader->SetFileNames( filenames );
>
> reader->Update();
>
> // BEGIN => I'm trying to modify one DICOM Header field <<<
>
> typedef itk::MetaDataDictionary DictionaryType;
>
> ImageType::Pointer inputImage = reader->GetOutput();
> DictionaryType & dictionary = inputImage->GetMetaDataDictionary();
>
> std::string entryId("008|103e");
> std::string value("NEW VALUE");
>
> itk::EncapsulateMetaData<std::string>( dictionary, entryId, value );
>
> // END
>
> [...]
>
> typedef signed short OutputPixelType;
> const unsigned int OutputDimension = 2;
>
> typedef itk::Image< OutputPixelType, OutputDimension > Image2DType;
>
> typedef itk::ImageSeriesWriter< ImageType, Image2DType >
> SeriesWriterType;
>
> SeriesWriterType::Pointer seriesWriter = SeriesWriterType::New();
>
> seriesWriter->SetInput( [...VOLUME...] );
> seriesWriter->SetImageIO( gdcmIO );
>
> namesGenerator->SetOutputDirectory( outputDirectory );
>
> seriesWriter->SetFileNames( namesGenerator->GetOutputFileNames() );
>
> seriesWriter->SetMetaDataDictionaryArray(
> reader->GetMetaDataDictionaryArray() );
>
> seriesWriter->Update();
>
>
>
>
> I would be very grateful if you could help me.
>
>
> Thank you very much,
>
>
>
> Stéphane
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
>
More information about the Insight-users
mailing list