# [vtkusers] probe volume with thick line ( intensity profile with line radius or thickness )

gregthom992 gregthom992 at gmail.com
Sun Feb 4 00:16:53 EST 2018

```Hi David,
So I am almost there but there is some magic you have to explain to me. Is
there some graphics that explans how imagereslice works ?

For instance:
How do you know to do
reslice.SetOutputExtent(0, N, 0, 0, 0, 0)  # this gives one line of output
and not
reslice.SetOutputExtent(0, 0, 0, 0, 0, N)  # this gives one line of output

Both give one line of output but I am lost here.

Also:

Please I know I can get multiple lines for instance 2 lines by:
reslice.SetOutputExtent(0, N, 0, 1, 0, 0)  # this gives two lines of output

What were you saying about fiddling with origin ? Below is my complete code
which doesn't give me the expected results

===================

vtkimage = SITKtoVTK(itkimage)
vtkimage.SetOrigin(itkimage.GetOrigin())
print itkimage
print vtkimage

p0 = np.array(prf_start)
p1 = np.array(prf_stop)
vv = p1 - p0
nn = vv/np.linalg.norm(vv, 1)

u, w = vtkMathPerpendiculars(nn, 3*[0], 3*[0], 0)

#print vtkimage, itkimage
print vv
print nn
print u, ' ',  w
#
oM2 = vtk.vtkMatrix4x4()
oM2.DeepCopy((
nn[0], u[0], w[0], p0[0],
nn[1], u[1], w[1], p0[1],
nn[2], u[2], w[2], p0[2],
0, 0, 0, 1 ))
print oM2
#
reslice = vtk.vtkImageReslice()
reslice.SetInput(vtkimage)
#reslice.SetOutputOrigin(itkimage.GetOrigin()[0],
itkimage.GetOrigin()[1], itkimage.GetOrigin()[2])
reslice.SetOutputOrigin(0, 0, 0)
reslice.SetOutputSpacing(itkimage.GetSpacing()[0],
itkimage.GetSpacing()[1], itkimage.GetSpacing()[2])
if prf_params[0] in ['depth']:
reslice.SetOutputExtent(0, itkimage.GetDepth()-1, 0, 0, 0,
0)  # this gives one line of output
if prf_params[0] in ['inline']:
reslice.SetOutputExtent(0, 0, 0, itkimage.GetHeight()-1, 0,
0)  # this gives one line of output
if prf_params[0] in ['crossline']:
reslice.SetOutputExtent(0, 0, 0, 0, 0,
itkimage.GetWidth()-1)  # this gives one line of output
reslice.SetInterpolationModeToLinear()
reslice.SetResliceAxes(oM2)
reslice.Update()
vtkimage2 = reslice.GetOutput()

print vtkimage2

numpy_data =
numpy_support.vtk_to_numpy(vtkimage2.GetPointData().GetScalars())

print numpy_data

===== SAMPLE OUTPUT ====

bounds      : [-148.5  148.5 -148.5  148.5  -99.5   99.5]
center_pixel: (50, 50, 100)
center_coord: [ 0.  0.  0.]
imsage size : [100, 100, 200]
profile type: depth | start=[0.0, 0.0, -99.5] stop=[0.0, 0.0, 99.5]
profile type: depth | start_pixel=(50, 50, 0) stop_pixel=(50, 50, 199)
Image (13AF3398)
RTTI typeinfo:   class itk::Image<float,3>
Reference Count: 1
Modified Time: 964
Debug: Off
Object Name:
Observers:
none
Source: (none)
Source output name: (none)
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 939
UpdateMTime: 963
RealTimeStamp: 0 seconds
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [100, 100, 200]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [100, 100, 200]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [100, 100, 200]
Spacing: [3, 3, 1]
Origin: [-148.5, -148.5, -99.5]
Direction:
1 0 0
0 1 0
0 0 1

IndexToPointMatrix:
3 0 0
0 3 0
0 0 1

PointToIndexMatrix:
0.333333 0 0
0 0.333333 0
0 0 1

Inverse Direction:
1 0 0
0 1 0
0 0 1

PixelContainer:
ImportImageContainer (01E13E20)
RTTI typeinfo:   class itk::ImportImageContainer<unsigned long,float>
Reference Count: 1
Modified Time: 960
Debug: Off
Object Name:
Observers:
none
Pointer: 19020020
Container manages memory: true
Size: 2000000
Capacity: 2000000

vtkImageData (13C95EF0)
Debug: Off
Modified Time: 309
Reference Count: 3
Registered Events: (none)
Source: (none)
Information: 139DB158
Data Released: False
Global Release Data: Off
UpdateTime: 0
Release Data: Off
UpdateExtent: Not Initialized
RequestExactExtent: Off
Field Data:
Debug: Off
Modified Time: 291
Reference Count: 1
Registered Events: (none)
Number Of Arrays: 0
Number Of Components: 0
Number Of Tuples: 0
Number Of Points: 2000000
Number Of Cells: 1950399
Cell Data:
Debug: Off
Modified Time: 284
Reference Count: 1
Registered Events: (none)
Number Of Arrays: 0
Number Of Components: 0
Number Of Tuples: 0
Copy Tuple Flags: ( 1 1 1 1 1 0 1 1 )
Interpolate Flags: ( 1 1 1 1 1 0 0 1 )
Pass Through Flags: ( 1 1 1 1 1 1 1 1 )
Scalars: (none)
Vectors: (none)
Normals: (none)
TCoords: (none)
Tensors: (none)
GlobalIds: (none)
PedigreeIds: (none)
EdgeFlag: (none)
Point Data:
Debug: Off
Modified Time: 290
Reference Count: 1
Registered Events: (none)
Number Of Arrays: 1
Array 0 name = scalars
Number Of Components: 1
Number Of Tuples: 2000000
Copy Tuple Flags: ( 1 1 1 1 1 0 1 1 )
Interpolate Flags: ( 1 1 1 1 1 0 0 1 )
Pass Through Flags: ( 1 1 1 1 1 1 1 1 )
Scalars:
Debug: Off
Modified Time: 289
Reference Count: 1
Registered Events: (none)
Name: scalars
Data type: float
Size: 2000000
MaxId: 1999999
NumberOfComponents: 1
Information: 00000000
Name: scalars
Number Of Components: 1
Number Of Tuples: 2000000
Size: 2000000
MaxId: 1999999
LookupTable: (none)
Array: 1D690020
Vectors: (none)
Normals: (none)
TCoords: (none)
Tensors: (none)
GlobalIds: (none)
PedigreeIds: (none)
EdgeFlag: (none)
Bounds:
Xmin,Xmax: (-148.5, 148.5)
Ymin,Ymax: (-148.5, 148.5)
Zmin,Zmax: (-99.5, 99.5)
Compute Time: 0
ScalarType: 10
NumberOfScalarComponents: 1
Spacing: (3, 3, 1)
Origin: (-148.5, -148.5, -99.5)
Dimensions: (100, 100, 200)
Increments: (0, 0, 0)
Extent: (0, 99, 0, 99, 0, 199)

[   0.    0.  199.]
[ 0.  0.  1.]
[0, -1.0, 0.0]   [1.0, -0.0, -0.0]
vtkMatrix4x4 (08E30D38)
Debug: Off
Modified Time: 312
Reference Count: 1
Registered Events: (none)
Elements:
0 0 1 0
0 -1 -0 0
1 0 -0 -99.5
0 0 0 1

vtkImageData (13C95B78)
Debug: Off
Modified Time: 625
Reference Count: 2
Registered Events: (none)
Source: (none)
Information: 139DAF50
Data Released: False
Global Release Data: Off
UpdateTime: 626
Release Data: Off
UpdateExtent: Not Initialized
UpdateExtent: 0, 199, 0, 0, 0, 0
CombinedUpdateExtent: 0, -1, 0, -1, 0, -1
WholeExtent: 0, 199, 0, 0, 0, 0
ExtentTranslator: (08B2C528)
RequestExactExtent: Off
Field Data:
Debug: Off
Modified Time: 594
Reference Count: 1
Registered Events: (none)
Number Of Arrays: 0
Number Of Components: 0
Number Of Tuples: 0
Number Of Points: 200
Number Of Cells: 199
Cell Data:
Debug: Off
Modified Time: 602
Reference Count: 1
Registered Events: (none)
Number Of Arrays: 0
Number Of Components: 0
Number Of Tuples: 0
Copy Tuple Flags: ( 1 1 1 1 1 0 1 1 )
Interpolate Flags: ( 1 1 1 1 1 0 0 1 )
Pass Through Flags: ( 1 1 1 1 1 1 1 1 )
Scalars: (none)
Vectors: (none)
Normals: (none)
TCoords: (none)
Tensors: (none)
GlobalIds: (none)
PedigreeIds: (none)
EdgeFlag: (none)
Point Data:
Debug: Off
Modified Time: 625
Reference Count: 1
Registered Events: (none)
Number Of Arrays: 1
Array 0 name = ImageScalars
Number Of Components: 1
Number Of Tuples: 200
Copy Tuple Flags: ( 1 1 1 1 1 0 1 1 )
Interpolate Flags: ( 1 1 1 1 1 0 0 1 )
Pass Through Flags: ( 1 1 1 1 1 1 1 1 )
Scalars:
Debug: Off
Modified Time: 622
Reference Count: 1
Registered Events: (none)
Name: ImageScalars
Data type: float
Size: 200
MaxId: 199
NumberOfComponents: 1
Information: 00000000
Name: ImageScalars
Number Of Components: 1
Number Of Tuples: 200
Size: 200
MaxId: 199
LookupTable: (none)
Array: 1BD7EEA8
Vectors: (none)
Normals: (none)
TCoords: (none)
Tensors: (none)
GlobalIds: (none)
PedigreeIds: (none)
EdgeFlag: (none)
Bounds:
Xmin,Xmax: (0, 597)
Ymin,Ymax: (0, 0)
Zmin,Zmax: (0, 0)
Compute Time: 0
ScalarType: 10
NumberOfScalarComponents: 1
Spacing: (3, 3, 1)
Origin: (0, 0, 0)
Dimensions: (200, 1, 1)
Increments: (0, 0, 0)
Extent: (0, 199, 0, 0, 0, 0)

[  2.69376324e-06   2.98764326e-06   3.12571501e-06   3.19816422e-06
3.08941594e-06   3.24563098e-06   3.36744961e-06   3.50718847e-06
3.41049872e-06   3.64814764e-06   3.61693901e-06   3.50275968e-06
3.54628014e-06   3.59668115e-06   3.76970297e-06   3.72300451e-06
3.86106831e-06   3.93086566e-06   4.09007953e-06   4.26286624e-06
4.21147206e-06   4.39374435e-06   4.24289055e-06   4.35135053e-06
4.50011703e-06   4.59888543e-06   4.58769182e-06   4.56170801e-06
4.86139834e-06   5.40174142e-06   6.13106795e-06   7.46469141e-06
9.48133766e-06   1.24298458e-05   1.71255706e-05   2.26814991e-05
2.83051340e-05   3.53847463e-05   4.19322168e-05   4.81512252e-05
5.48132775e-05   5.96905338e-05   6.66187989e-05   7.01088939e-05
7.38430535e-05   7.55145375e-05   7.73844367e-05   8.04474184e-05
8.26143078e-05   8.35268438e-05   8.50798824e-05   8.57990308e-05
8.60243017e-05   8.66826304e-05   8.76013291e-05   8.80208900e-05
8.73666650e-05   8.81852466e-05   8.91573800e-05   8.96064594e-05
8.93770411e-05   8.99249790e-05   8.91938034e-05   8.84891706e-05
8.82743698e-05   8.73582539e-05   8.30601784e-05   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00]

--
Sent from: http://vtk.1045678.n5.nabble.com/VTK-Users-f1224199.html
```