File: TestvtkGDCMImageReader.py

package info (click to toggle)
gdcm 3.0.24-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 27,856 kB
  • sloc: cpp: 203,722; ansic: 76,471; xml: 48,131; python: 3,473; cs: 2,308; java: 1,629; lex: 1,290; sh: 334; php: 128; makefile: 97
file content (60 lines) | stat: -rw-r--r-- 1,821 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
############################################################################
#
#  Program: GDCM (Grassroots DICOM). A DICOM library
#
#  Copyright (c) 2006-2011 Mathieu Malaterre
#  All rights reserved.
#  See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
#
#     This software is distributed WITHOUT ANY WARRANTY; without even
#     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
#     PURPOSE.  See the above copyright notice for more information.
#
############################################################################

# Simply check that we can read mr.001 from VTKData

import vtkgdcm
import vtk

from vtk.util.misc import vtkGetDataRoot
VTK_DATA_ROOT = vtkGetDataRoot()

r = vtkgdcm.vtkGDCMImageReader()
r.SetFileName( VTK_DATA_ROOT + "/Data/mr.001" )
r.Update()

#print r.GetOutput()

# Pixel Spacing
# 0.78125, 0.78125, 0

# Image Position (Patient)
# -13.3034, -80.8219, 119.178

# try to rewrite it:
w = vtkgdcm.vtkGDCMImageWriter()
w.SetInput( r.GetOutput() )
w.SetMedicalImageProperties( r.GetMedicalImageProperties() )
w.SetDirectionCosines( r.GetDirectionCosines() )
w.SetFileName( "mr.001.dcm" )
w.Write()

# beach.tif
#tiffreader = vtk.vtkTIFFReader()
#tiffreader.SetFileName( VTK_DATA_ROOT + "/Data/beach.tif" )
#tiffreader.Update()
# print tiffreader.GetOutput()
# -> TIFF reader was apparently broken in VTK until some very recent
# version and thus image appear upside down, unless you also update VTKData :(

jpegreader = vtk.vtkJPEGReader()
jpegreader.SetFileName( VTK_DATA_ROOT + "/Data/beach.jpg" )
#jpegreader.Update()

# Need a new writer otherwise MedicalImageProperties are re-used...
w2 = vtkgdcm.vtkGDCMImageWriter()
#w2.SetInput( tiffreader.GetOutput() )
w2.SetInput( jpegreader.GetOutput() )
w2.SetFileName( "beach.dcm" )
w2.Write()