You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.3 KiB
95 lines
2.3 KiB
# Show the constant kernel. Smooth an impulse function.
|
|
|
|
package require vtk
|
|
|
|
|
|
|
|
vtkImageCanvasSource2D imageCanvas
|
|
imageCanvas SetScalarTypeToDouble
|
|
imageCanvas SetExtent 1 256 1 256 0 0
|
|
# back ground zero
|
|
imageCanvas SetDrawColor 0
|
|
imageCanvas FillBox 1 256 1 256
|
|
|
|
imageCanvas SetDrawColor 255
|
|
imageCanvas FillBox 30 225 30 225
|
|
|
|
imageCanvas SetDrawColor 0
|
|
imageCanvas FillBox 60 195 60 195
|
|
|
|
imageCanvas SetDrawColor 255
|
|
imageCanvas FillTube 100 100 154 154 40.0
|
|
|
|
imageCanvas SetDrawColor 0
|
|
|
|
imageCanvas DrawSegment 45 45 45 210
|
|
imageCanvas DrawSegment 45 210 210 210
|
|
imageCanvas DrawSegment 210 210 210 45
|
|
imageCanvas DrawSegment 210 45 45 45
|
|
|
|
imageCanvas DrawSegment 100 150 150 100
|
|
imageCanvas DrawSegment 110 160 160 110
|
|
imageCanvas DrawSegment 90 140 140 90
|
|
imageCanvas DrawSegment 120 170 170 120
|
|
imageCanvas DrawSegment 80 130 130 80
|
|
|
|
|
|
|
|
|
|
set shotNoiseAmplitude 255.0
|
|
set shotNoiseFraction 0.1
|
|
#set shotNoiseExtent "1 256 1 256 0 0"
|
|
|
|
vtkImageNoiseSource shotNoiseSource
|
|
shotNoiseSource SetWholeExtent 1 256 1 256 0 0 ;#$shotNoiseExtent
|
|
shotNoiseSource SetMinimum 0.0
|
|
shotNoiseSource SetMaximum 1.0
|
|
shotNoiseSource ReleaseDataFlagOff
|
|
|
|
vtkImageThreshold shotNoiseThresh1
|
|
shotNoiseThresh1 SetInputConnection [shotNoiseSource GetOutputPort]
|
|
shotNoiseThresh1 ThresholdByLower [expr 1.0 - $shotNoiseFraction]
|
|
shotNoiseThresh1 SetInValue 0
|
|
shotNoiseThresh1 SetOutValue $shotNoiseAmplitude
|
|
|
|
vtkImageThreshold shotNoiseThresh2
|
|
shotNoiseThresh2 SetInputConnection [shotNoiseSource GetOutputPort]
|
|
shotNoiseThresh2 ThresholdByLower $shotNoiseFraction
|
|
shotNoiseThresh2 SetInValue [expr - $shotNoiseAmplitude]
|
|
shotNoiseThresh2 SetOutValue 0.0
|
|
|
|
vtkImageMathematics shotNoise
|
|
shotNoise SetInput1 [shotNoiseThresh1 GetOutput]
|
|
shotNoise SetInput2 [shotNoiseThresh2 GetOutput]
|
|
shotNoise SetOperationToAdd
|
|
|
|
|
|
|
|
|
|
vtkImageMathematics add
|
|
add SetInput1 [shotNoise GetOutput]
|
|
add SetInput2 [imageCanvas GetOutput]
|
|
add SetOperationToAdd
|
|
|
|
|
|
|
|
|
|
|
|
vtkImageMedian3D median
|
|
median SetInputConnection [add GetOutputPort]
|
|
median SetKernelSize 3 3 1
|
|
|
|
vtkImageHybridMedian2D hybrid1
|
|
hybrid1 SetInputConnection [add GetOutputPort]
|
|
|
|
vtkImageHybridMedian2D hybrid2
|
|
hybrid2 SetInputConnection [hybrid1 GetOutputPort]
|
|
|
|
vtkImageViewer viewer
|
|
viewer SetInputConnection [hybrid1 GetOutputPort]
|
|
viewer SetColorWindow 256
|
|
viewer SetColorLevel 127.5
|
|
|
|
viewer Render
|
|
|
|
|
|
|