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
|
package require vtk
# Image pipeline
vtkPNGReader reader
reader SetFileName "$VTK_DATA_ROOT/Data/fullhead15.png"
# Take the gradient in X, and smooth in Y
# Create a simple gradient filter
vtkFloatArray kernel
kernel SetNumberOfTuples 3
kernel InsertValue 0 -1
kernel InsertValue 1 0
kernel InsertValue 2 1
# Create a gaussian for Y
set sigma 1.5
set sigma2 [expr $sigma * $sigma]
vtkFloatArray gaussian
gaussian SetNumberOfTuples 31
for { set i 0 } { $i < 31 } { incr i } {
set x [expr $i - 15]
set g [expr exp ( - ( $x * $x ) / (2.0 * $sigma2) ) / ( sqrt ( 2.0 * 3.1415 ) * $sigma ) ]
gaussian InsertValue $i $g
}
vtkImageSeparableConvolution convolve
convolve SetInputConnection [reader GetOutputPort]
convolve SetDimensionality 2
convolve SetXKernel kernel
convolve SetYKernel gaussian
vtkImageViewer viewer
#viewer DebugOn
viewer SetInputConnection [convolve GetOutputPort]
viewer SetColorWindow 500
viewer SetColorLevel 100
wm withdraw .
viewer Render
|