# 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