SimpleITK  
FilterProgressReporting/FilterProgressReporting.R
#=========================================================================
#
# Copyright NumFOCUS
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0.txt
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#=========================================================================
# Run with:
#
# Rscript --vanilla FilterProgressReporting.R input variance output
#
library(SimpleITK)
args <- commandArgs( TRUE )
if (length(args) < 3){
write("Usage arguments: <input> <variance> <output>", stderr())
quit(save="no", status=1)
}
reader <- ImageFileReader()
reader$SetFileName(args[[1]])
image = reader$Execute()
pixelID <- image$GetPixelID()
gaussian <- DiscreteGaussianImageFilter()
gaussian$SetVariance( as.numeric(args[2]) )
##! [R lambda command]
gaussian$AddCommand( 'sitkStartEvent', function(method) {cat("StartEvent\n")} )
gaussian$AddCommand( 'sitkEndEvent', function(method) {cat("EndEvent\n")} )
##! [R lambda command]
image = gaussian$Execute( image )
caster <- CastImageFilter()
caster$SetOutputPixelType( pixelID )
image = caster$Execute( image )
writer <- ImageFileWriter()
writer$SetFileName( args[[3]] )
writer$Execute( image )