Вот это в python:
r = vtkBMPReader()
r.SetFileName( 'test1.bmp' )
w = vtkGDCMImageWriter()
w.SetInput( r.GetOutput() )
w.SetFileName( 'test1.dcm' )
w.Write()
Если ваш входной BMP использует таблицу поиска, вы можете просто передать ее:
r = vtkBMPReader()
r.SetFileName( 'test1.bmp' )
r.Allow8BitBMPOn()
r.Update()
r.GetOutput().GetPointData().GetScalars().SetLookupTable( r.GetLookupTable() )
w = vtkGDCMImageWriter()
w.SetInput( r.GetOutput() )
w.SetFileName( 'test1.dcm' )
w.SetImageFormat( VTK_LOOKUP_TABLE );
w.Write()
И наоборот (DICOM -> BMP):
r = vtkGDCMImageReader()
r.SetFileName( 'test1.dcm' )
w = vtkBMPWriter()
w.SetInput( r.GetOutput() )
w.SetFileName( 'test1.bmp' )
w.Write()
Конечно, вы можете сделать это из командной строки, просто используйте gdcm2vtk :
$ gdcm2vtk input.bmp output.dcm
или
$ gdcm2vtk --palette-color input.bmp output.dcm