00001
00002
00003
00004 template<class ImageType >
00005 void
00006 ImProc_Addition_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00007 {
00008 typedef typename ImageType::value_type Im3DValue;
00009 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00010 ImageType& arg1 =*StringOrAlternateInputArg<ImageType >( args[1] ,alternateArgs,1 );
00011 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00012 IP3D::Addition(arg0, arg1, arg2);
00013 CleanupArg< ImageType >(arg0,alternateArgs,0);
00014 CleanupArg< ImageType >(arg1,alternateArgs,1);
00015 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00016 CleanupArg< ImageType >(arg2,alternateArgs,2);
00017 }
00018 template<class ImageType >
00019 void
00020 ImProc_AdditionWithConstant_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00021 {
00022 typedef typename ImageType::value_type Im3DValue;
00023 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00024 Im3DValue& arg1 =*StringOrAlternateInputArg<Im3DValue >( args[1] ,alternateArgs,1 );
00025 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00026 IP3D::AdditionWithConstant(arg0, arg1, arg2);
00027 CleanupArg< ImageType >(arg0,alternateArgs,0);
00028 CleanupArg< Im3DValue >(arg1,alternateArgs,1);
00029 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00030 CleanupArg< ImageType >(arg2,alternateArgs,2);
00031 }
00032 template<class ImageType >
00033 void
00034 ImProc_Difference_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00035 {
00036 typedef typename ImageType::value_type Im3DValue;
00037 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00038 ImageType& arg1 =*StringOrAlternateInputArg<ImageType >( args[1] ,alternateArgs,1 );
00039 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00040 IP3D::Difference(arg0, arg1, arg2);
00041 CleanupArg< ImageType >(arg0,alternateArgs,0);
00042 CleanupArg< ImageType >(arg1,alternateArgs,1);
00043 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00044 CleanupArg< ImageType >(arg2,alternateArgs,2);
00045 }
00046 template<class ImageType >
00047 void
00048 ImProc_DifferenceWithConstant_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00049 {
00050 typedef typename ImageType::value_type Im3DValue;
00051 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00052 Im3DValue& arg1 =*StringOrAlternateInputArg<Im3DValue >( args[1] ,alternateArgs,1 );
00053 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00054 IP3D::DifferenceWithConstant(arg0, arg1, arg2);
00055 CleanupArg< ImageType >(arg0,alternateArgs,0);
00056 CleanupArg< Im3DValue >(arg1,alternateArgs,1);
00057 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00058 CleanupArg< ImageType >(arg2,alternateArgs,2);
00059 }
00060 template<class ImageType >
00061 void
00062 ImProc_Multiplication_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00063 {
00064 typedef typename ImageType::value_type Im3DValue;
00065 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00066 ImageType& arg1 =*StringOrAlternateInputArg<ImageType >( args[1] ,alternateArgs,1 );
00067 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00068 IP3D::Multiplication(arg0, arg1, arg2);
00069 CleanupArg< ImageType >(arg0,alternateArgs,0);
00070 CleanupArg< ImageType >(arg1,alternateArgs,1);
00071 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00072 CleanupArg< ImageType >(arg2,alternateArgs,2);
00073 }
00074 template<class ImageType >
00075 void
00076 ImProc_MultiplicationWithConstant_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00077 {
00078 typedef typename ImageType::value_type Im3DValue;
00079 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00080 double& arg1 =*StringOrAlternateInputArg<double >( args[1] ,alternateArgs,1 );
00081 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00082 IP3D::MultiplicationWithConstant(arg0, arg1, arg2);
00083 CleanupArg< ImageType >(arg0,alternateArgs,0);
00084 CleanupArg< double >(arg1,alternateArgs,1);
00085 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00086 CleanupArg< ImageType >(arg2,alternateArgs,2);
00087 }
00088 template<class ImageType >
00089 void
00090 ImProc_Division_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00091 {
00092 typedef typename ImageType::value_type Im3DValue;
00093 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00094 ImageType& arg1 =*StringOrAlternateInputArg<ImageType >( args[1] ,alternateArgs,1 );
00095 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00096 IP3D::Division(arg0, arg1, arg2);
00097 CleanupArg< ImageType >(arg0,alternateArgs,0);
00098 CleanupArg< ImageType >(arg1,alternateArgs,1);
00099 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00100 CleanupArg< ImageType >(arg2,alternateArgs,2);
00101 }
00102 template<class ImageType >
00103 void
00104 ImProc_MaxImage_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00105 {
00106 typedef typename ImageType::value_type Im3DValue;
00107 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00108 ImageType& arg1 =*StringOrAlternateInputArg<ImageType >( args[1] ,alternateArgs,1 );
00109 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00110 IP3D::MaxImage(arg0, arg1, arg2);
00111 CleanupArg< ImageType >(arg0,alternateArgs,0);
00112 CleanupArg< ImageType >(arg1,alternateArgs,1);
00113 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00114 CleanupArg< ImageType >(arg2,alternateArgs,2);
00115 }
00116 template<class ImageType >
00117 void
00118 ImProc_Abs_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00119 {
00120 typedef typename ImageType::value_type Im3DValue;
00121 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00122 ImageType& arg1 =*CreateOutputArg<ImageType >(alternateArgs,1 );
00123 IP3D::Abs(arg0, arg1);
00124 CleanupArg< ImageType >(arg0,alternateArgs,0);
00125 ImProcOutputArg< ImageType >(arg1,args[1],alternateArgs,1);
00126 CleanupArg< ImageType >(arg1,alternateArgs,1);
00127 }
00128 template<class ImageType >
00129 void
00130 ImProc_Convolution_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00131 {
00132 typedef typename ImageType::value_type Im3DValue;
00133 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00134 Filter& arg1 =*StringOrAlternateInputArg<Filter >( args[1] ,alternateArgs,1 );
00135 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00136 IP3D::Convolution(arg0, arg1, arg2);
00137 CleanupArg< ImageType >(arg0,alternateArgs,0);
00138 CleanupArg< Filter >(arg1,alternateArgs,1);
00139 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00140 CleanupArg< ImageType >(arg2,alternateArgs,2);
00141 }
00142 template<class ImageType >
00143 void
00144 ImProc_ConvolutionFFT_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00145 {
00146 typedef typename ImageType::value_type Im3DValue;
00147 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00148 Filter& arg1 =*StringOrAlternateInputArg<Filter >( args[1] ,alternateArgs,1 );
00149 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00150 IP3D::ConvolutionFFT(arg0, arg1, arg2);
00151 CleanupArg< ImageType >(arg0,alternateArgs,0);
00152 CleanupArg< Filter >(arg1,alternateArgs,1);
00153 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00154 CleanupArg< ImageType >(arg2,alternateArgs,2);
00155 }
00156 template<class ImageType >
00157 void
00158 ImProc_PartialSum_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00159 {
00160 typedef typename ImageType::value_type Im3DValue;
00161 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00162 RectZone3Di& arg1 =*StringOrAlternateInputArg<RectZone3Di >( args[1] ,alternateArgs,1 );
00163 Im3DValue& arg2 =*CreateOutputArg<Im3DValue >(alternateArgs,2 );
00164 IP3D::PartialSum(arg0, arg1, arg2);
00165 CleanupArg< ImageType >(arg0,alternateArgs,0);
00166 CleanupArg< RectZone3Di >(arg1,alternateArgs,1);
00167 ImProcOutputArg< Im3DValue >(arg2,args[2],alternateArgs,2);
00168 CleanupArg< Im3DValue >(arg2,alternateArgs,2);
00169 }
00170 template<class ImageType >
00171 void
00172 ImProc_CumulativeSum_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00173 {
00174 typedef typename ImageType::value_type Im3DValue;
00175 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00176 ImageType& arg1 =*CreateOutputArg<ImageType >(alternateArgs,1 );
00177 IP3D::CumulativeSum(arg0, arg1);
00178 CleanupArg< ImageType >(arg0,alternateArgs,0);
00179 ImProcOutputArg< ImageType >(arg1,args[1],alternateArgs,1);
00180 CleanupArg< ImageType >(arg1,alternateArgs,1);
00181 }
00182 template<class ImageType >
00183 void
00184 ImProc_BoxFilter_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00185 {
00186 typedef typename ImageType::value_type Im3DValue;
00187 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00188 int& arg1 =*StringOrAlternateInputArg<int >( args[1] ,alternateArgs,1 );
00189 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00190 IP3D::BoxFilter(arg0, arg1, arg2);
00191 CleanupArg< ImageType >(arg0,alternateArgs,0);
00192 CleanupArg< int >(arg1,alternateArgs,1);
00193 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00194 CleanupArg< ImageType >(arg2,alternateArgs,2);
00195 }
00196 template<class ImageType >
00197 void
00198 ImProc_GaussianApproxFilter_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00199 {
00200 typedef typename ImageType::value_type Im3DValue;
00201 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00202 int& arg1 =*StringOrAlternateInputArg<int >( args[1] ,alternateArgs,1 );
00203 int& arg2 =*StringOrAlternateInputArg<int >( args[2] ,alternateArgs,2 );
00204 ImageType& arg3 =*CreateOutputArg<ImageType >(alternateArgs,3 );
00205 IP3D::GaussianApproxFilter(arg0, arg1, arg2, arg3);
00206 CleanupArg< ImageType >(arg0,alternateArgs,0);
00207 CleanupArg< int >(arg1,alternateArgs,1);
00208 CleanupArg< int >(arg2,alternateArgs,2);
00209 ImProcOutputArg< ImageType >(arg3,args[3],alternateArgs,3);
00210 CleanupArg< ImageType >(arg3,alternateArgs,3);
00211 }
00212 template<class ImageType >
00213 void
00214 ImProc_BorderCorrectedGaussianApproxFilter_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00215 {
00216 typedef typename ImageType::value_type Im3DValue;
00217 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00218 int& arg1 =*StringOrAlternateInputArg<int >( args[1] ,alternateArgs,1 );
00219 int& arg2 =*StringOrAlternateInputArg<int >( args[2] ,alternateArgs,2 );
00220 ImageType& arg3 =*CreateOutputArg<ImageType >(alternateArgs,3 );
00221 IP3D::BorderCorrectedGaussianApproxFilter(arg0, arg1, arg2, arg3);
00222 CleanupArg< ImageType >(arg0,alternateArgs,0);
00223 CleanupArg< int >(arg1,alternateArgs,1);
00224 CleanupArg< int >(arg2,alternateArgs,2);
00225 ImProcOutputArg< ImageType >(arg3,args[3],alternateArgs,3);
00226 CleanupArg< ImageType >(arg3,alternateArgs,3);
00227 }
00228 template<class ImageType >
00229 void
00230 ImProc_SymmetricBinomialFilter_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00231 {
00232 typedef typename ImageType::value_type Im3DValue;
00233 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00234 int& arg1 =*StringOrAlternateInputArg<int >( args[1] ,alternateArgs,1 );
00235 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00236 IP3D::SymmetricBinomialFilter(arg0, arg1, arg2);
00237 CleanupArg< ImageType >(arg0,alternateArgs,0);
00238 CleanupArg< int >(arg1,alternateArgs,1);
00239 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00240 CleanupArg< ImageType >(arg2,alternateArgs,2);
00241 }
00242 template<class ImageType >
00243 void
00244 ImProc_ScalarProduct_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00245 {
00246 typedef typename ImageType::value_type Im3DValue;
00247 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00248 ImageType& arg1 =*StringOrAlternateInputArg<ImageType >( args[1] ,alternateArgs,1 );
00249 double& arg2 =*CreateOutputArg<double >(alternateArgs,2 );
00250 IP3D::ScalarProduct(arg0, arg1, arg2);
00251 CleanupArg< ImageType >(arg0,alternateArgs,0);
00252 CleanupArg< ImageType >(arg1,alternateArgs,1);
00253 ImProcOutputArg< double >(arg2,args[2],alternateArgs,2);
00254 CleanupArg< double >(arg2,alternateArgs,2);
00255 }
00256 template<class ImageType >
00257 void
00258 ImProc_Average_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00259 {
00260 typedef typename ImageType::value_type Im3DValue;
00261 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00262 Im3DValue& arg1 =*CreateOutputArg<Im3DValue >(alternateArgs,1 );
00263 IP3D::Average(arg0, arg1);
00264 CleanupArg< ImageType >(arg0,alternateArgs,0);
00265 ImProcOutputArg< Im3DValue >(arg1,args[1],alternateArgs,1);
00266 CleanupArg< Im3DValue >(arg1,alternateArgs,1);
00267 }
00268 template<class ImageType >
00269 void
00270 ImProc_AverageAndVariance_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00271 {
00272 typedef typename ImageType::value_type Im3DValue;
00273 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00274 double& arg1 =*CreateOutputArg<double >(alternateArgs,1 );
00275 double& arg2 =*CreateOutputArg<double >(alternateArgs,2 );
00276 IP3D::AverageAndVariance(arg0, arg1, arg2);
00277 CleanupArg< ImageType >(arg0,alternateArgs,0);
00278 ImProcOutputArg< double >(arg1,args[1],alternateArgs,1);
00279 CleanupArg< double >(arg1,alternateArgs,1);
00280 ImProcOutputArg< double >(arg2,args[2],alternateArgs,2);
00281 CleanupArg< double >(arg2,alternateArgs,2);
00282 }
00283 template<class ImageType >
00284 void
00285 ImProc_Median_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00286 {
00287 typedef typename ImageType::value_type Im3DValue;
00288 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00289 double& arg1 =*StringOrAlternateInputArg<double >( args[1] ,alternateArgs,1 );
00290 double& arg2 =*CreateOutputArg<double >(alternateArgs,2 );
00291 IP3D::Median(arg0, arg1, arg2);
00292 CleanupArg< ImageType >(arg0,alternateArgs,0);
00293 CleanupArg< double >(arg1,alternateArgs,1);
00294 ImProcOutputArg< double >(arg2,args[2],alternateArgs,2);
00295 CleanupArg< double >(arg2,alternateArgs,2);
00296 }
00297 template<class ImageType >
00298 void
00299 ImProc_MedianFilter_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00300 {
00301 typedef typename ImageType::value_type Im3DValue;
00302 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00303 StructureElement& arg1 =*StringOrAlternateInputArg<StructureElement >( args[1] ,alternateArgs,1 );
00304 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00305 IP3D::MedianFilter(arg0, arg1, arg2);
00306 CleanupArg< ImageType >(arg0,alternateArgs,0);
00307 CleanupArg< StructureElement >(arg1,alternateArgs,1);
00308 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00309 CleanupArg< ImageType >(arg2,alternateArgs,2);
00310 }
00311 template<class ImageType >
00312 void
00313 ImProc_SharpeningFilter_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00314 {
00315 typedef typename ImageType::value_type Im3DValue;
00316 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00317 StructureElement& arg1 =*StringOrAlternateInputArg<StructureElement >( args[1] ,alternateArgs,1 );
00318 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00319 IP3D::SharpeningFilter(arg0, arg1, arg2);
00320 CleanupArg< ImageType >(arg0,alternateArgs,0);
00321 CleanupArg< StructureElement >(arg1,alternateArgs,1);
00322 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00323 CleanupArg< ImageType >(arg2,alternateArgs,2);
00324 }
00325 template<class ImageType >
00326 void
00327 ImProc_Erosion_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00328 {
00329 typedef typename ImageType::value_type Im3DValue;
00330 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00331 StructureElement& arg1 =*StringOrAlternateInputArg<StructureElement >( args[1] ,alternateArgs,1 );
00332 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00333 IP3D::Erosion(arg0, arg1, arg2);
00334 CleanupArg< ImageType >(arg0,alternateArgs,0);
00335 CleanupArg< StructureElement >(arg1,alternateArgs,1);
00336 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00337 CleanupArg< ImageType >(arg2,alternateArgs,2);
00338 }
00339 template<class ImageType >
00340 void
00341 ImProc_Dilation_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00342 {
00343 typedef typename ImageType::value_type Im3DValue;
00344 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00345 StructureElement& arg1 =*StringOrAlternateInputArg<StructureElement >( args[1] ,alternateArgs,1 );
00346 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00347 IP3D::Dilation(arg0, arg1, arg2);
00348 CleanupArg< ImageType >(arg0,alternateArgs,0);
00349 CleanupArg< StructureElement >(arg1,alternateArgs,1);
00350 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00351 CleanupArg< ImageType >(arg2,alternateArgs,2);
00352 }
00353 template<class ImageType >
00354 void
00355 ImProc_Opening_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00356 {
00357 typedef typename ImageType::value_type Im3DValue;
00358 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00359 StructureElement& arg1 =*StringOrAlternateInputArg<StructureElement >( args[1] ,alternateArgs,1 );
00360 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00361 IP3D::Opening(arg0, arg1, arg2);
00362 CleanupArg< ImageType >(arg0,alternateArgs,0);
00363 CleanupArg< StructureElement >(arg1,alternateArgs,1);
00364 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00365 CleanupArg< ImageType >(arg2,alternateArgs,2);
00366 }
00367 template<class ImageType >
00368 void
00369 ImProc_Closing_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00370 {
00371 typedef typename ImageType::value_type Im3DValue;
00372 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00373 StructureElement& arg1 =*StringOrAlternateInputArg<StructureElement >( args[1] ,alternateArgs,1 );
00374 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00375 IP3D::Closing(arg0, arg1, arg2);
00376 CleanupArg< ImageType >(arg0,alternateArgs,0);
00377 CleanupArg< StructureElement >(arg1,alternateArgs,1);
00378 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00379 CleanupArg< ImageType >(arg2,alternateArgs,2);
00380 }
00381 template<class ImageType >
00382 void
00383 ImProc_SimpleThreshold_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00384 {
00385 typedef typename ImageType::value_type Im3DValue;
00386 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00387 Im3DValue& arg1 =*StringOrAlternateInputArg<Im3DValue >( args[1] ,alternateArgs,1 );
00388 Mask3D& arg2 =*CreateOutputArg<Mask3D >(alternateArgs,2 );
00389 IP3D::SimpleThreshold(arg0, arg1, arg2);
00390 CleanupArg< ImageType >(arg0,alternateArgs,0);
00391 CleanupArg< Im3DValue >(arg1,alternateArgs,1);
00392 ImProcOutputArg< Mask3D >(arg2,args[2],alternateArgs,2);
00393 CleanupArg< Mask3D >(arg2,alternateArgs,2);
00394 }
00395 template<class ImageType >
00396 void
00397 ImProc_SimpleThresholds2_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00398 {
00399 typedef typename ImageType::value_type Im3DValue;
00400 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00401 Im3DValue& arg1 =*StringOrAlternateInputArg<Im3DValue >( args[1] ,alternateArgs,1 );
00402 Im3DValue& arg2 =*StringOrAlternateInputArg<Im3DValue >( args[2] ,alternateArgs,2 );
00403 Mask3D& arg3 =*CreateOutputArg<Mask3D >(alternateArgs,3 );
00404 IP3D::SimpleThresholds2(arg0, arg1, arg2, arg3);
00405 CleanupArg< ImageType >(arg0,alternateArgs,0);
00406 CleanupArg< Im3DValue >(arg1,alternateArgs,1);
00407 CleanupArg< Im3DValue >(arg2,alternateArgs,2);
00408 ImProcOutputArg< Mask3D >(arg3,args[3],alternateArgs,3);
00409 CleanupArg< Mask3D >(arg3,alternateArgs,3);
00410 }
00411 template<class ImageType >
00412 void
00413 ImProc_LimitThreshold_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00414 {
00415 typedef typename ImageType::value_type Im3DValue;
00416 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00417 Im3DValue& arg1 =*StringOrAlternateInputArg<Im3DValue >( args[1] ,alternateArgs,1 );
00418 Im3DValue& arg2 =*StringOrAlternateInputArg<Im3DValue >( args[2] ,alternateArgs,2 );
00419 ImageType& arg3 =*CreateOutputArg<ImageType >(alternateArgs,3 );
00420 IP3D::LimitThreshold(arg0, arg1, arg2, arg3);
00421 CleanupArg< ImageType >(arg0,alternateArgs,0);
00422 CleanupArg< Im3DValue >(arg1,alternateArgs,1);
00423 CleanupArg< Im3DValue >(arg2,alternateArgs,2);
00424 ImProcOutputArg< ImageType >(arg3,args[3],alternateArgs,3);
00425 CleanupArg< ImageType >(arg3,alternateArgs,3);
00426 }
00427 template<class ImageType >
00428 void
00429 ImProc_OtsuThresholds_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00430 {
00431 typedef typename ImageType::value_type Im3DValue;
00432 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00433 Mask3D& arg1 =*CreateOutputArg<Mask3D >(alternateArgs,1 );
00434 int& arg2 =*OptionalDefaultValueArg<int >( args[2] ,alternateArgs,2 ,2);
00435 vector<double>& arg3 =*OptionalPointerArgCreateOutput<vector<double> >( args[3] ,alternateArgs,3 );
00436 int& arg4 =*OptionalDefaultValueArg<int >( args[4] ,alternateArgs,4 ,1000);
00437 IP3D::OtsuThresholds(arg0, arg1, arg2, &arg3, arg4);
00438 CleanupArg< ImageType >(arg0,alternateArgs,0);
00439 ImProcOutputArg< Mask3D >(arg1,args[1],alternateArgs,1);
00440 CleanupArg< Mask3D >(arg1,alternateArgs,1);
00441 CleanupArg< vector<double> >(arg3,alternateArgs,3);
00442 }
00443 template<class ImageType >
00444 void
00445 ImProc_CenterOfGravity_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00446 {
00447 typedef typename ImageType::value_type Im3DValue;
00448 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00449 double& arg1 =*CreateOutputArg<double >(alternateArgs,1 );
00450 Vect3Df& arg2 =*CreateOutputArg<Vect3Df >(alternateArgs,2 );
00451 IP3D::CenterOfGravity(arg0, arg1, arg2);
00452 CleanupArg< ImageType >(arg0,alternateArgs,0);
00453 ImProcOutputArg< double >(arg1,args[1],alternateArgs,1);
00454 CleanupArg< double >(arg1,alternateArgs,1);
00455 ImProcOutputArg< Vect3Df >(arg2,args[2],alternateArgs,2);
00456 CleanupArg< Vect3Df >(arg2,alternateArgs,2);
00457 }
00458 template<class ImageType >
00459 void
00460 ImProc_TransformWithInverseField_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00461 {
00462 typedef typename ImageType::value_type Im3DValue;
00463 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00464 Image3Dlinear<Vect3Df>& arg1 =*StringOrAlternateInputArg<Image3Dlinear<Vect3Df> >( args[1] ,alternateArgs,1 );
00465 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00466 IP3D::TransformWithInverseField(arg0, arg1, arg2);
00467 CleanupArg< ImageType >(arg0,alternateArgs,0);
00468 CleanupArg< Image3Dlinear<Vect3Df> >(arg1,alternateArgs,1);
00469 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00470 CleanupArg< ImageType >(arg2,alternateArgs,2);
00471 }
00472 template<class ImageType >
00473 void
00474 ImProc_TransformAffine_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00475 {
00476 typedef typename ImageType::value_type Im3DValue;
00477 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00478 Affine3DTransform& arg1 =*StringOrAlternateInputArg<Affine3DTransform >( args[1] ,alternateArgs,1 );
00479 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00480 Size3D& arg3 =*OptionalPointerArg<Size3D >( args[3] ,alternateArgs,3 );
00481 IP3D::TransformAffine(arg0, arg1, arg2, &arg3);
00482 CleanupArg< ImageType >(arg0,alternateArgs,0);
00483 CleanupArg< Affine3DTransform >(arg1,alternateArgs,1);
00484 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00485 CleanupArg< ImageType >(arg2,alternateArgs,2);
00486 CleanupArg< Size3D >(arg3,alternateArgs,3);
00487 }
00488 template<class ImageType >
00489 void
00490 ImProc_Scale_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00491 {
00492 typedef typename ImageType::value_type Im3DValue;
00493 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00494 Size3D& arg1 =*StringOrAlternateInputArg<Size3D >( args[1] ,alternateArgs,1 );
00495 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00496 IP3D::Scale(arg0, arg1, arg2);
00497 CleanupArg< ImageType >(arg0,alternateArgs,0);
00498 CleanupArg< Size3D >(arg1,alternateArgs,1);
00499 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00500 CleanupArg< ImageType >(arg2,alternateArgs,2);
00501 }
00502 template<class ImageType >
00503 void
00504 ImProc_Flip_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00505 {
00506 typedef typename ImageType::value_type Im3DValue;
00507 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00508 string& arg1 =*StringOrAlternateInputArg<string >( args[1] ,alternateArgs,1 );
00509 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00510 IP3D::Flip(arg0, arg1, arg2);
00511 CleanupArg< ImageType >(arg0,alternateArgs,0);
00512 CleanupArg< string >(arg1,alternateArgs,1);
00513 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00514 CleanupArg< ImageType >(arg2,alternateArgs,2);
00515 }
00516 template<class ImageType >
00517 void
00518 ImProc_SwapAxes_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00519 {
00520 typedef typename ImageType::value_type Im3DValue;
00521 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00522 string& arg1 =*StringOrAlternateInputArg<string >( args[1] ,alternateArgs,1 );
00523 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00524 IP3D::SwapAxes(arg0, arg1, arg2);
00525 CleanupArg< ImageType >(arg0,alternateArgs,0);
00526 CleanupArg< string >(arg1,alternateArgs,1);
00527 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00528 CleanupArg< ImageType >(arg2,alternateArgs,2);
00529 }
00530 template<class ImageType >
00531 void
00532 ImProc_WrapTranslate_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00533 {
00534 typedef typename ImageType::value_type Im3DValue;
00535 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00536 Vect3Di& arg1 =*StringOrAlternateInputArg<Vect3Di >( args[1] ,alternateArgs,1 );
00537 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00538 IP3D::WrapTranslate(arg0, arg1, arg2);
00539 CleanupArg< ImageType >(arg0,alternateArgs,0);
00540 CleanupArg< Vect3Di >(arg1,alternateArgs,1);
00541 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00542 CleanupArg< ImageType >(arg2,alternateArgs,2);
00543 }
00544 template<class ImageType >
00545 void
00546 ImProc_Crop_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00547 {
00548 typedef typename ImageType::value_type Im3DValue;
00549 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00550 RectZone3Di& arg1 =*StringOrAlternateInputArg<RectZone3Di >( args[1] ,alternateArgs,1 );
00551 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00552 IP3D::Crop(arg0, arg1, arg2);
00553 CleanupArg< ImageType >(arg0,alternateArgs,0);
00554 CleanupArg< RectZone3Di >(arg1,alternateArgs,1);
00555 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00556 CleanupArg< ImageType >(arg2,alternateArgs,2);
00557 }
00558 template<class ImageType >
00559 void
00560 ImProc_Pad_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00561 {
00562 typedef typename ImageType::value_type Im3DValue;
00563 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00564 Vect3Di& arg1 =*StringOrAlternateInputArg<Vect3Di >( args[1] ,alternateArgs,1 );
00565 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00566 bool& arg3 =*OptionalDefaultValueArg<bool >( args[3] ,alternateArgs,3 ,false);
00567 IP3D::Pad(arg0, arg1, arg2, arg3);
00568 CleanupArg< ImageType >(arg0,alternateArgs,0);
00569 CleanupArg< Vect3Di >(arg1,alternateArgs,1);
00570 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00571 CleanupArg< ImageType >(arg2,alternateArgs,2);
00572 }
00573 template<class ImageType >
00574 void
00575 ImProc_InsertImage_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00576 {
00577 typedef typename ImageType::value_type Im3DValue;
00578 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00579 ImageType& arg1 =*StringOrAlternateInputArg<ImageType >( args[1] ,alternateArgs,1 );
00580 Vect3Di& arg2 =*StringOrAlternateInputArg<Vect3Di >( args[2] ,alternateArgs,2 );
00581 ImageType& arg3 =*CreateOutputArg<ImageType >(alternateArgs,3 );
00582 IP3D::InsertImage(arg0, arg1, arg2, arg3);
00583 CleanupArg< ImageType >(arg0,alternateArgs,0);
00584 CleanupArg< ImageType >(arg1,alternateArgs,1);
00585 CleanupArg< Vect3Di >(arg2,alternateArgs,2);
00586 ImProcOutputArg< ImageType >(arg3,args[3],alternateArgs,3);
00587 CleanupArg< ImageType >(arg3,alternateArgs,3);
00588 }
00589 template<class ImageType >
00590 void
00591 ImProc_ResizeImageSupport_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00592 {
00593 typedef typename ImageType::value_type Im3DValue;
00594 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00595 Size3D& arg1 =*StringOrAlternateInputArg<Size3D >( args[1] ,alternateArgs,1 );
00596 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00597 Im3DValue& arg3 =*OptionalPointerArg<Im3DValue >( args[3] ,alternateArgs,3 );
00598 IP3D::ResizeImageSupport(arg0, arg1, arg2, &arg3);
00599 CleanupArg< ImageType >(arg0,alternateArgs,0);
00600 CleanupArg< Size3D >(arg1,alternateArgs,1);
00601 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00602 CleanupArg< ImageType >(arg2,alternateArgs,2);
00603 CleanupArg< Im3DValue >(arg3,alternateArgs,3);
00604 }
00605 template<class ImageType >
00606 void
00607 ImProc_FindFirstDifference_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00608 {
00609 typedef typename ImageType::value_type Im3DValue;
00610 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00611 ImageType& arg1 =*StringOrAlternateInputArg<ImageType >( args[1] ,alternateArgs,1 );
00612 bool& arg2 =*CreateOutputArg<bool >(alternateArgs,2 );
00613 Vect3Di& arg3 =*CreateOutputArg<Vect3Di >(alternateArgs,3 );
00614 IP3D::FindFirstDifference(arg0, arg1, arg2, arg3);
00615 CleanupArg< ImageType >(arg0,alternateArgs,0);
00616 CleanupArg< ImageType >(arg1,alternateArgs,1);
00617 ImProcOutputArg< bool >(arg2,args[2],alternateArgs,2);
00618 CleanupArg< bool >(arg2,alternateArgs,2);
00619 ImProcOutputArg< Vect3Di >(arg3,args[3],alternateArgs,3);
00620 CleanupArg< Vect3Di >(arg3,alternateArgs,3);
00621 }
00622 template<class ImageType >
00623 void
00624 ImProc_FindMinMax_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00625 {
00626 typedef typename ImageType::value_type Im3DValue;
00627 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00628 Im3DValue& arg1 =*CreateOutputArg<Im3DValue >(alternateArgs,1 );
00629 Im3DValue& arg2 =*CreateOutputArg<Im3DValue >(alternateArgs,2 );
00630 Vect3Di& arg3 =*OptionalPointerArgCreateOutput<Vect3Di >( args[3] ,alternateArgs,3 );
00631 Vect3Di& arg4 =*OptionalPointerArgCreateOutput<Vect3Di >( args[4] ,alternateArgs,4 );
00632 IP3D::FindMinMax(arg0, arg1, arg2, &arg3, &arg4);
00633 CleanupArg< ImageType >(arg0,alternateArgs,0);
00634 ImProcOutputArg< Im3DValue >(arg1,args[1],alternateArgs,1);
00635 CleanupArg< Im3DValue >(arg1,alternateArgs,1);
00636 ImProcOutputArg< Im3DValue >(arg2,args[2],alternateArgs,2);
00637 CleanupArg< Im3DValue >(arg2,alternateArgs,2);
00638 ImProcOutputArg< Vect3Di >(arg3,args[3],alternateArgs,3);
00639 CleanupArg< Vect3Di >(arg3,alternateArgs,3);
00640 ImProcOutputArg< Vect3Di >(arg4,args[4],alternateArgs,4);
00641 CleanupArg< Vect3Di >(arg4,alternateArgs,4);
00642 }
00643 template<class ImageType >
00644 void
00645 ImProc_SetAllVoxels_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00646 {
00647 typedef typename ImageType::value_type Im3DValue;
00648 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00649 Im3DValue& arg1 =*StringOrAlternateInputArg<Im3DValue >( args[1] ,alternateArgs,1 );
00650 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00651 IP3D::SetAllVoxels(arg0, arg1, arg2);
00652 CleanupArg< ImageType >(arg0,alternateArgs,0);
00653 CleanupArg< Im3DValue >(arg1,alternateArgs,1);
00654 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00655 CleanupArg< ImageType >(arg2,alternateArgs,2);
00656 }
00657 template<class ImageType >
00658 void
00659 ImProc_AddMask_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00660 {
00661 typedef typename ImageType::value_type Im3DValue;
00662 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00663 ImageType& arg1 =*CreateOutputArg<ImageType >(alternateArgs,1 );
00664 Mask3D& arg2 =*OptionalPointerArg<Mask3D >( args[2] ,alternateArgs,2 );
00665 IP3D::AddMask(arg0, arg1, &arg2);
00666 CleanupArg< ImageType >(arg0,alternateArgs,0);
00667 ImProcOutputArg< ImageType >(arg1,args[1],alternateArgs,1);
00668 CleanupArg< ImageType >(arg1,alternateArgs,1);
00669 CleanupArg< Mask3D >(arg2,alternateArgs,2);
00670 }
00671 template<class ImageType >
00672 void
00673 ImProc_GetMask_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00674 {
00675 typedef typename ImageType::value_type Im3DValue;
00676 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00677 Mask3D& arg1 =*CreateOutputArg<Mask3D >(alternateArgs,1 );
00678 IP3D::GetMask(arg0, arg1);
00679 CleanupArg< ImageType >(arg0,alternateArgs,0);
00680 ImProcOutputArg< Mask3D >(arg1,args[1],alternateArgs,1);
00681 CleanupArg< Mask3D >(arg1,alternateArgs,1);
00682 }
00683 template<class ImageType >
00684 void
00685 ImProc_ApplyMask_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00686 {
00687 typedef typename ImageType::value_type Im3DValue;
00688 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00689 ImageType& arg1 =*CreateOutputArg<ImageType >(alternateArgs,1 );
00690 byte& arg2 =*OptionalDefaultValueArg<byte >( args[2] ,alternateArgs,2 ,0);
00691 Mask3D& arg3 =*OptionalPointerArg<Mask3D >( args[3] ,alternateArgs,3 );
00692 IP3D::ApplyMask(arg0, arg1, arg2, &arg3);
00693 CleanupArg< ImageType >(arg0,alternateArgs,0);
00694 ImProcOutputArg< ImageType >(arg1,args[1],alternateArgs,1);
00695 CleanupArg< ImageType >(arg1,alternateArgs,1);
00696 CleanupArg< Mask3D >(arg3,alternateArgs,3);
00697 }
00698 template<class ImageType >
00699 void
00700 ImProc_SetDefaultInterpolator_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00701 {
00702 typedef typename ImageType::value_type Im3DValue;
00703 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00704 string& arg1 =*StringOrAlternateInputArg<string >( args[1] ,alternateArgs,1 );
00705 ImageType& arg2 =*CreateOutputArg<ImageType >(alternateArgs,2 );
00706 IP3D::SetDefaultInterpolator(arg0, arg1, arg2);
00707 CleanupArg< ImageType >(arg0,alternateArgs,0);
00708 CleanupArg< string >(arg1,alternateArgs,1);
00709 ImProcOutputArg< ImageType >(arg2,args[2],alternateArgs,2);
00710 CleanupArg< ImageType >(arg2,alternateArgs,2);
00711 }
00712 template<class ImageType >
00713 void
00714 ImProc_SetProperty_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00715 {
00716 typedef typename ImageType::value_type Im3DValue;
00717 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00718 string& arg1 =*StringOrAlternateInputArg<string >( args[1] ,alternateArgs,1 );
00719 string& arg2 =*StringOrAlternateInputArg<string >( args[2] ,alternateArgs,2 );
00720 string& arg3 =*StringOrAlternateInputArg<string >( args[3] ,alternateArgs,3 );
00721 ImageType& arg4 =*CreateOutputArg<ImageType >(alternateArgs,4 );
00722 IP3D::SetProperty(arg0, arg1, arg2, arg3, arg4);
00723 CleanupArg< ImageType >(arg0,alternateArgs,0);
00724 CleanupArg< string >(arg1,alternateArgs,1);
00725 CleanupArg< string >(arg2,alternateArgs,2);
00726 CleanupArg< string >(arg3,alternateArgs,3);
00727 ImProcOutputArg< ImageType >(arg4,args[4],alternateArgs,4);
00728 CleanupArg< ImageType >(arg4,alternateArgs,4);
00729 }
00730 template<class ImageType >
00731 void
00732 ImProc_WriteToFileAVW_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00733 {
00734 typedef typename ImageType::value_type Im3DValue;
00735 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00736 string& arg1 =*StringOrAlternateInputArg<string >( args[1] ,alternateArgs,1 );
00737 IP3D::WriteToFileAVW(arg0, arg1);
00738 CleanupArg< ImageType >(arg0,alternateArgs,0);
00739 CleanupArg< string >(arg1,alternateArgs,1);
00740 }
00741 template<class ImageType >
00742 void
00743 ImProc_ExportImageSlice_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00744 {
00745 typedef typename ImageType::value_type Im3DValue;
00746 ImageType& arg0 =*StringOrAlternateInputArg<ImageType >( args[0] ,alternateArgs,0 );
00747 int& arg1 =*StringOrAlternateInputArg<int >( args[1] ,alternateArgs,1 );
00748 int& arg2 =*StringOrAlternateInputArg<int >( args[2] ,alternateArgs,2 );
00749 string& arg3 =*StringOrAlternateInputArg<string >( args[3] ,alternateArgs,3 );
00750 float& arg4 =*OptionalDefaultValueArg<float >( args[4] ,alternateArgs,4 ,1);
00751 IP3D::ExportImageSlice(arg0, arg1, arg2, arg3, arg4);
00752 CleanupArg< ImageType >(arg0,alternateArgs,0);
00753 CleanupArg< int >(arg1,alternateArgs,1);
00754 CleanupArg< int >(arg2,alternateArgs,2);
00755 CleanupArg< string >(arg3,alternateArgs,3);
00756 }
00757 void
00758 ImProc_FFTLowPassFilterApodizedIdeal_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00759 {
00760 Image3Df& arg0 =*StringOrAlternateInputArg<Image3Df >( args[0] ,alternateArgs,0 );
00761 float& arg1 =*StringOrAlternateInputArg<float >( args[1] ,alternateArgs,1 );
00762 Image3Df& arg2 =*CreateOutputArg<Image3Df >(alternateArgs,2 );
00763 float& arg3 =*OptionalDefaultValueArg<float >( args[3] ,alternateArgs,3 ,0);
00764 IP3D::FFTLowPassFilterApodizedIdeal(arg0, arg1, arg2, arg3);
00765 CleanupArg< Image3Df >(arg0,alternateArgs,0);
00766 CleanupArg< float >(arg1,alternateArgs,1);
00767 ImProcOutputArg< Image3Df >(arg2,args[2],alternateArgs,2);
00768 CleanupArg< Image3Df >(arg2,alternateArgs,2);
00769 }
00770 void
00771 ImProc_FFTLowPassFilterButterworth_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00772 {
00773 Image3Df& arg0 =*StringOrAlternateInputArg<Image3Df >( args[0] ,alternateArgs,0 );
00774 float& arg1 =*StringOrAlternateInputArg<float >( args[1] ,alternateArgs,1 );
00775 float& arg2 =*StringOrAlternateInputArg<float >( args[2] ,alternateArgs,2 );
00776 Image3Df& arg3 =*CreateOutputArg<Image3Df >(alternateArgs,3 );
00777 IP3D::FFTLowPassFilterButterworth(arg0, arg1, arg2, arg3);
00778 CleanupArg< Image3Df >(arg0,alternateArgs,0);
00779 CleanupArg< float >(arg1,alternateArgs,1);
00780 CleanupArg< float >(arg2,alternateArgs,2);
00781 ImProcOutputArg< Image3Df >(arg3,args[3],alternateArgs,3);
00782 CleanupArg< Image3Df >(arg3,alternateArgs,3);
00783 }
00784 void
00785 ImProc_FFTLowPassFilterChebyscheff_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00786 {
00787 Image3Df& arg0 =*StringOrAlternateInputArg<Image3Df >( args[0] ,alternateArgs,0 );
00788 float& arg1 =*StringOrAlternateInputArg<float >( args[1] ,alternateArgs,1 );
00789 float& arg2 =*StringOrAlternateInputArg<float >( args[2] ,alternateArgs,2 );
00790 Image3Df& arg3 =*CreateOutputArg<Image3Df >(alternateArgs,3 );
00791 IP3D::FFTLowPassFilterChebyscheff(arg0, arg1, arg2, arg3);
00792 CleanupArg< Image3Df >(arg0,alternateArgs,0);
00793 CleanupArg< float >(arg1,alternateArgs,1);
00794 CleanupArg< float >(arg2,alternateArgs,2);
00795 ImProcOutputArg< Image3Df >(arg3,args[3],alternateArgs,3);
00796 CleanupArg< Image3Df >(arg3,alternateArgs,3);
00797 }
00798 void
00799 ImProc_RobustAverageAndVariance_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00800 {
00801 Image3Df& arg0 =*StringOrAlternateInputArg<Image3Df >( args[0] ,alternateArgs,0 );
00802 double& arg1 =*CreateOutputArg<double >(alternateArgs,1 );
00803 double& arg2 =*CreateOutputArg<double >(alternateArgs,2 );
00804 IP3D::RobustAverageAndVariance(arg0, arg1, arg2);
00805 CleanupArg< Image3Df >(arg0,alternateArgs,0);
00806 ImProcOutputArg< double >(arg1,args[1],alternateArgs,1);
00807 CleanupArg< double >(arg1,alternateArgs,1);
00808 ImProcOutputArg< double >(arg2,args[2],alternateArgs,2);
00809 CleanupArg< double >(arg2,alternateArgs,2);
00810 }
00811 void
00812 ImProc_DistanceTransform_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00813 {
00814 Mask3D& arg0 =*StringOrAlternateInputArg<Mask3D >( args[0] ,alternateArgs,0 );
00815 StructureElement& arg1 =*StringOrAlternateInputArg<StructureElement >( args[1] ,alternateArgs,1 );
00816 Image3Df& arg2 =*CreateOutputArg<Image3Df >(alternateArgs,2 );
00817 bool& arg3 =*OptionalDefaultValueArg<bool >( args[3] ,alternateArgs,3 ,false);
00818 IP3D::DistanceTransform(arg0, arg1, arg2, arg3);
00819 CleanupArg< Mask3D >(arg0,alternateArgs,0);
00820 CleanupArg< StructureElement >(arg1,alternateArgs,1);
00821 ImProcOutputArg< Image3Df >(arg2,args[2],alternateArgs,2);
00822 CleanupArg< Image3Df >(arg2,alternateArgs,2);
00823 }
00824 void
00825 ImProc_ConnectedComponentLabelling_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00826 {
00827 Mask3D& arg0 =*StringOrAlternateInputArg<Mask3D >( args[0] ,alternateArgs,0 );
00828 StructureElement& arg1 =*StringOrAlternateInputArg<StructureElement >( args[1] ,alternateArgs,1 );
00829 Image3Dlinear<int>& arg2 =*CreateOutputArg<Image3Dlinear<int> >(alternateArgs,2 );
00830 IP3D::ConnectedComponentLabelling(arg0, arg1, arg2);
00831 CleanupArg< Mask3D >(arg0,alternateArgs,0);
00832 CleanupArg< StructureElement >(arg1,alternateArgs,1);
00833 ImProcOutputArg< Image3Dlinear<int> >(arg2,args[2],alternateArgs,2);
00834 CleanupArg< Image3Dlinear<int> >(arg2,alternateArgs,2);
00835 }
00836 void
00837 ImProc_FillHoles_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00838 {
00839 Mask3D& arg0 =*StringOrAlternateInputArg<Mask3D >( args[0] ,alternateArgs,0 );
00840 StructureElement& arg1 =*StringOrAlternateInputArg<StructureElement >( args[1] ,alternateArgs,1 );
00841 Mask3D& arg2 =*CreateOutputArg<Mask3D >(alternateArgs,2 );
00842 IP3D::FillHoles(arg0, arg1, arg2);
00843 CleanupArg< Mask3D >(arg0,alternateArgs,0);
00844 CleanupArg< StructureElement >(arg1,alternateArgs,1);
00845 ImProcOutputArg< Mask3D >(arg2,args[2],alternateArgs,2);
00846 CleanupArg< Mask3D >(arg2,alternateArgs,2);
00847 }
00848 void
00849 ImProc_LargestConnectedComponent_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00850 {
00851 Mask3D& arg0 =*StringOrAlternateInputArg<Mask3D >( args[0] ,alternateArgs,0 );
00852 Mask3D& arg1 =*CreateOutputArg<Mask3D >(alternateArgs,1 );
00853 IP3D::LargestConnectedComponent(arg0, arg1);
00854 CleanupArg< Mask3D >(arg0,alternateArgs,0);
00855 ImProcOutputArg< Mask3D >(arg1,args[1],alternateArgs,1);
00856 CleanupArg< Mask3D >(arg1,alternateArgs,1);
00857 }
00858 void
00859 ImProc_VoxelCode_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00860 {
00861 Mask3D& arg0 =*StringOrAlternateInputArg<Mask3D >( args[0] ,alternateArgs,0 );
00862 Mask3D& arg1 =*StringOrAlternateInputArg<Mask3D >( args[1] ,alternateArgs,1 );
00863 int& arg2 =*StringOrAlternateInputArg<int >( args[2] ,alternateArgs,2 );
00864 int& arg3 =*StringOrAlternateInputArg<int >( args[3] ,alternateArgs,3 );
00865 int& arg4 =*StringOrAlternateInputArg<int >( args[4] ,alternateArgs,4 );
00866 Image3Dlinear<int>& arg5 =*CreateOutputArg<Image3Dlinear<int> >(alternateArgs,5 );
00867 IP3D::VoxelCode(arg0, arg1, arg2, arg3, arg4, arg5);
00868 CleanupArg< Mask3D >(arg0,alternateArgs,0);
00869 CleanupArg< Mask3D >(arg1,alternateArgs,1);
00870 CleanupArg< int >(arg2,alternateArgs,2);
00871 CleanupArg< int >(arg3,alternateArgs,3);
00872 CleanupArg< int >(arg4,alternateArgs,4);
00873 ImProcOutputArg< Image3Dlinear<int> >(arg5,args[5],alternateArgs,5);
00874 CleanupArg< Image3Dlinear<int> >(arg5,alternateArgs,5);
00875 }
00876 void
00877 ImProc_SSCode_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00878 {
00879 Mask3D& arg0 =*StringOrAlternateInputArg<Mask3D >( args[0] ,alternateArgs,0 );
00880 Vect3Di& arg1 =*StringOrAlternateInputArg<Vect3Di >( args[1] ,alternateArgs,1 );
00881 int& arg2 =*StringOrAlternateInputArg<int >( args[2] ,alternateArgs,2 );
00882 int& arg3 =*StringOrAlternateInputArg<int >( args[3] ,alternateArgs,3 );
00883 int& arg4 =*StringOrAlternateInputArg<int >( args[4] ,alternateArgs,4 );
00884 Image3Dlinear<int>& arg5 =*CreateOutputArg<Image3Dlinear<int> >(alternateArgs,5 );
00885 Vect3Di& arg6 =*OptionalPointerArg<Vect3Di >( args[6] ,alternateArgs,6 );
00886 IP3D::SSCode(arg0, arg1, arg2, arg3, arg4, arg5, &arg6);
00887 CleanupArg< Mask3D >(arg0,alternateArgs,0);
00888 CleanupArg< Vect3Di >(arg1,alternateArgs,1);
00889 CleanupArg< int >(arg2,alternateArgs,2);
00890 CleanupArg< int >(arg3,alternateArgs,3);
00891 CleanupArg< int >(arg4,alternateArgs,4);
00892 ImProcOutputArg< Image3Dlinear<int> >(arg5,args[5],alternateArgs,5);
00893 CleanupArg< Image3Dlinear<int> >(arg5,alternateArgs,5);
00894 CleanupArg< Vect3Di >(arg6,alternateArgs,6);
00895 }
00896 void
00897 ImProc_BSCode_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00898 {
00899 Mask3D& arg0 =*StringOrAlternateInputArg<Mask3D >( args[0] ,alternateArgs,0 );
00900 int& arg1 =*StringOrAlternateInputArg<int >( args[1] ,alternateArgs,1 );
00901 int& arg2 =*StringOrAlternateInputArg<int >( args[2] ,alternateArgs,2 );
00902 int& arg3 =*StringOrAlternateInputArg<int >( args[3] ,alternateArgs,3 );
00903 Image3Dlinear<int>& arg4 =*CreateOutputArg<Image3Dlinear<int> >(alternateArgs,4 );
00904 IP3D::BSCode(arg0, arg1, arg2, arg3, arg4);
00905 CleanupArg< Mask3D >(arg0,alternateArgs,0);
00906 CleanupArg< int >(arg1,alternateArgs,1);
00907 CleanupArg< int >(arg2,alternateArgs,2);
00908 CleanupArg< int >(arg3,alternateArgs,3);
00909 ImProcOutputArg< Image3Dlinear<int> >(arg4,args[4],alternateArgs,4);
00910 CleanupArg< Image3Dlinear<int> >(arg4,alternateArgs,4);
00911 }
00912 void
00913 ImProc_Skeleton_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00914 {
00915 Mask3D& arg0 =*StringOrAlternateInputArg<Mask3D >( args[0] ,alternateArgs,0 );
00916 Mask3D& arg1 =*CreateOutputArg<Mask3D >(alternateArgs,1 );
00917 IP3D::Skeleton(arg0, arg1);
00918 CleanupArg< Mask3D >(arg0,alternateArgs,0);
00919 ImProcOutputArg< Mask3D >(arg1,args[1],alternateArgs,1);
00920 CleanupArg< Mask3D >(arg1,alternateArgs,1);
00921 }
00922 void
00923 ImProc_UniModalThreshold_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00924 {
00925 Image3Df& arg0 =*StringOrAlternateInputArg<Image3Df >( args[0] ,alternateArgs,0 );
00926 double& arg1 =*CreateOutputArg<double >(alternateArgs,1 );
00927 Mask3D& arg2 =*OptionalPointerArgCreateOutput<Mask3D >( args[2] ,alternateArgs,2 );
00928 IP3D::UniModalThreshold(arg0, arg1, &arg2);
00929 CleanupArg< Image3Df >(arg0,alternateArgs,0);
00930 ImProcOutputArg< double >(arg1,args[1],alternateArgs,1);
00931 CleanupArg< double >(arg1,alternateArgs,1);
00932 ImProcOutputArg< Mask3D >(arg2,args[2],alternateArgs,2);
00933 CleanupArg< Mask3D >(arg2,alternateArgs,2);
00934 }
00935 void
00936 ImProc_BoundingBox_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00937 {
00938 Mask3D& arg0 =*StringOrAlternateInputArg<Mask3D >( args[0] ,alternateArgs,0 );
00939 RectZone3Di& arg1 =*CreateOutputArg<RectZone3Di >(alternateArgs,1 );
00940 IP3D::BoundingBox(arg0, arg1);
00941 CleanupArg< Mask3D >(arg0,alternateArgs,0);
00942 ImProcOutputArg< RectZone3Di >(arg1,args[1],alternateArgs,1);
00943 CleanupArg< RectZone3Di >(arg1,alternateArgs,1);
00944 }
00945 void
00946 ImProc_ExtractFromComplexImage_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00947 {
00948 Image3Dcomplexf& arg0 =*StringOrAlternateInputArg<Image3Dcomplexf >( args[0] ,alternateArgs,0 );
00949 string& arg1 =*StringOrAlternateInputArg<string >( args[1] ,alternateArgs,1 );
00950 Image3Df& arg2 =*CreateOutputArg<Image3Df >(alternateArgs,2 );
00951 IP3D::ExtractFromComplexImage(arg0, arg1, arg2);
00952 CleanupArg< Image3Dcomplexf >(arg0,alternateArgs,0);
00953 CleanupArg< string >(arg1,alternateArgs,1);
00954 ImProcOutputArg< Image3Df >(arg2,args[2],alternateArgs,2);
00955 CleanupArg< Image3Df >(arg2,alternateArgs,2);
00956 }
00957 void
00958 ImProc_ReadFromFileBruker_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00959 {
00960 string& arg0 =*StringOrAlternateInputArg<string >( args[0] ,alternateArgs,0 );
00961 int& arg1 =*StringOrAlternateInputArg<int >( args[1] ,alternateArgs,1 );
00962 Image3Dlinear<short int>& arg2 =*CreateOutputArg<Image3Dlinear<short int> >(alternateArgs,2 );
00963 IP3D::ReadFromFileBruker(arg0, arg1, arg2);
00964 CleanupArg< string >(arg0,alternateArgs,0);
00965 CleanupArg< int >(arg1,alternateArgs,1);
00966 ImProcOutputArg< Image3Dlinear<short int> >(arg2,args[2],alternateArgs,2);
00967 CleanupArg< Image3Dlinear<short int> >(arg2,alternateArgs,2);
00968 }
00969 void
00970 ImProc_Sphere_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00971 {
00972 Size3D& arg0 =*StringOrAlternateInputArg<Size3D >( args[0] ,alternateArgs,0 );
00973 Vect3Df& arg1 =*StringOrAlternateInputArg<Vect3Df >( args[1] ,alternateArgs,1 );
00974 float& arg2 =*StringOrAlternateInputArg<float >( args[2] ,alternateArgs,2 );
00975 Image3Df& arg3 =*CreateOutputArg<Image3Df >(alternateArgs,3 );
00976 IP3D::Sphere(arg0, arg1, arg2, arg3);
00977 CleanupArg< Size3D >(arg0,alternateArgs,0);
00978 CleanupArg< Vect3Df >(arg1,alternateArgs,1);
00979 CleanupArg< float >(arg2,alternateArgs,2);
00980 ImProcOutputArg< Image3Df >(arg3,args[3],alternateArgs,3);
00981 CleanupArg< Image3Df >(arg3,alternateArgs,3);
00982 }
00983 void
00984 ImProc_Cone_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
00985 {
00986 Size3D& arg0 =*StringOrAlternateInputArg<Size3D >( args[0] ,alternateArgs,0 );
00987 Vect3Df& arg1 =*StringOrAlternateInputArg<Vect3Df >( args[1] ,alternateArgs,1 );
00988 Vect3Df& arg2 =*StringOrAlternateInputArg<Vect3Df >( args[2] ,alternateArgs,2 );
00989 float& arg3 =*StringOrAlternateInputArg<float >( args[3] ,alternateArgs,3 );
00990 Image3Df& arg4 =*CreateOutputArg<Image3Df >(alternateArgs,4 );
00991 float& arg5 =*OptionalDefaultValueArg<float >( args[5] ,alternateArgs,5 ,4.0);
00992 IP3D::Cone(arg0, arg1, arg2, arg3, arg4, arg5);
00993 CleanupArg< Size3D >(arg0,alternateArgs,0);
00994 CleanupArg< Vect3Df >(arg1,alternateArgs,1);
00995 CleanupArg< Vect3Df >(arg2,alternateArgs,2);
00996 CleanupArg< float >(arg3,alternateArgs,3);
00997 ImProcOutputArg< Image3Df >(arg4,args[4],alternateArgs,4);
00998 CleanupArg< Image3Df >(arg4,alternateArgs,4);
00999 }
01000 void
01001 ImProc_NoiseUniform_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01002 {
01003 Size3D& arg0 =*StringOrAlternateInputArg<Size3D >( args[0] ,alternateArgs,0 );
01004 Image3Df& arg1 =*CreateOutputArg<Image3Df >(alternateArgs,1 );
01005 float& arg2 =*OptionalDefaultValueArg<float >( args[2] ,alternateArgs,2 ,0);
01006 float& arg3 =*OptionalDefaultValueArg<float >( args[3] ,alternateArgs,3 ,1);
01007 IP3D::NoiseUniform(arg0, arg1, arg2, arg3);
01008 CleanupArg< Size3D >(arg0,alternateArgs,0);
01009 ImProcOutputArg< Image3Df >(arg1,args[1],alternateArgs,1);
01010 CleanupArg< Image3Df >(arg1,alternateArgs,1);
01011 }
01012 void
01013 ImProc_NoiseGaussian_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01014 {
01015 Size3D& arg0 =*StringOrAlternateInputArg<Size3D >( args[0] ,alternateArgs,0 );
01016 Image3Df& arg1 =*CreateOutputArg<Image3Df >(alternateArgs,1 );
01017 float& arg2 =*OptionalDefaultValueArg<float >( args[2] ,alternateArgs,2 ,0);
01018 float& arg3 =*OptionalDefaultValueArg<float >( args[3] ,alternateArgs,3 ,1);
01019 IP3D::NoiseGaussian(arg0, arg1, arg2, arg3);
01020 CleanupArg< Size3D >(arg0,alternateArgs,0);
01021 ImProcOutputArg< Image3Df >(arg1,args[1],alternateArgs,1);
01022 CleanupArg< Image3Df >(arg1,alternateArgs,1);
01023 }
01024 void
01025 ImProc_Explode_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01026 {
01027 Size3D& arg0 =*StringOrAlternateInputArg<Size3D >( args[0] ,alternateArgs,0 );
01028 Vect3Df& arg1 =*StringOrAlternateInputArg<Vect3Df >( args[1] ,alternateArgs,1 );
01029 Field3Df& arg2 =*CreateOutputArg<Field3Df >(alternateArgs,2 );
01030 IP3D::Explode(arg0, arg1, arg2);
01031 CleanupArg< Size3D >(arg0,alternateArgs,0);
01032 CleanupArg< Vect3Df >(arg1,alternateArgs,1);
01033 ImProcOutputArg< Field3Df >(arg2,args[2],alternateArgs,2);
01034 CleanupArg< Field3Df >(arg2,alternateArgs,2);
01035 }
01036 void
01037 ImProc_Target_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01038 {
01039 Size3D& arg0 =*StringOrAlternateInputArg<Size3D >( args[0] ,alternateArgs,0 );
01040 Image3Df& arg1 =*CreateOutputArg<Image3Df >(alternateArgs,1 );
01041 IP3D::Target(arg0, arg1);
01042 CleanupArg< Size3D >(arg0,alternateArgs,0);
01043 ImProcOutputArg< Image3Df >(arg1,args[1],alternateArgs,1);
01044 CleanupArg< Image3Df >(arg1,alternateArgs,1);
01045 }
01046 void
01047 ImProc_Bump_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01048 {
01049 Size3D& arg0 =*StringOrAlternateInputArg<Size3D >( args[0] ,alternateArgs,0 );
01050 Vect3Df& arg1 =*StringOrAlternateInputArg<Vect3Df >( args[1] ,alternateArgs,1 );
01051 float& arg2 =*StringOrAlternateInputArg<float >( args[2] ,alternateArgs,2 );
01052 float& arg3 =*StringOrAlternateInputArg<float >( args[3] ,alternateArgs,3 );
01053 Image3Df& arg4 =*CreateOutputArg<Image3Df >(alternateArgs,4 );
01054 IP3D::Bump(arg0, arg1, arg2, arg3, arg4);
01055 CleanupArg< Size3D >(arg0,alternateArgs,0);
01056 CleanupArg< Vect3Df >(arg1,alternateArgs,1);
01057 CleanupArg< float >(arg2,alternateArgs,2);
01058 CleanupArg< float >(arg3,alternateArgs,3);
01059 ImProcOutputArg< Image3Df >(arg4,args[4],alternateArgs,4);
01060 CleanupArg< Image3Df >(arg4,alternateArgs,4);
01061 }
01062 void
01063 ImProc_Ramp_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01064 {
01065 Size3D& arg0 =*StringOrAlternateInputArg<Size3D >( args[0] ,alternateArgs,0 );
01066 int& arg1 =*StringOrAlternateInputArg<int >( args[1] ,alternateArgs,1 );
01067 float& arg2 =*StringOrAlternateInputArg<float >( args[2] ,alternateArgs,2 );
01068 float& arg3 =*StringOrAlternateInputArg<float >( args[3] ,alternateArgs,3 );
01069 Image3Df& arg4 =*CreateOutputArg<Image3Df >(alternateArgs,4 );
01070 int& arg5 =*OptionalDefaultValueArg<int >( args[5] ,alternateArgs,5 ,-1);
01071 int& arg6 =*OptionalDefaultValueArg<int >( args[6] ,alternateArgs,6 ,-1);
01072 IP3D::Ramp(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
01073 CleanupArg< Size3D >(arg0,alternateArgs,0);
01074 CleanupArg< int >(arg1,alternateArgs,1);
01075 CleanupArg< float >(arg2,alternateArgs,2);
01076 CleanupArg< float >(arg3,alternateArgs,3);
01077 ImProcOutputArg< Image3Df >(arg4,args[4],alternateArgs,4);
01078 CleanupArg< Image3Df >(arg4,alternateArgs,4);
01079 }
01080 void
01081 ImProc_Parallellogram_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01082 {
01083 Size3D& arg0 =*StringOrAlternateInputArg<Size3D >( args[0] ,alternateArgs,0 );
01084 RectZone3Di& arg1 =*StringOrAlternateInputArg<RectZone3Di >( args[1] ,alternateArgs,1 );
01085 Image3Df& arg2 =*CreateOutputArg<Image3Df >(alternateArgs,2 );
01086 IP3D::Parallellogram(arg0, arg1, arg2);
01087 CleanupArg< Size3D >(arg0,alternateArgs,0);
01088 CleanupArg< RectZone3Di >(arg1,alternateArgs,1);
01089 ImProcOutputArg< Image3Df >(arg2,args[2],alternateArgs,2);
01090 CleanupArg< Image3Df >(arg2,alternateArgs,2);
01091 }
01092 void
01093 ImProc_RectangularGrid_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01094 {
01095 Size3D& arg0 =*StringOrAlternateInputArg<Size3D >( args[0] ,alternateArgs,0 );
01096 Size3D& arg1 =*StringOrAlternateInputArg<Size3D >( args[1] ,alternateArgs,1 );
01097 Image3Df& arg2 =*CreateOutputArg<Image3Df >(alternateArgs,2 );
01098 Vect3Di& arg3 =*OptionalPointerArg<Vect3Di >( args[3] ,alternateArgs,3 );
01099 IP3D::RectangularGrid(arg0, arg1, arg2, &arg3);
01100 CleanupArg< Size3D >(arg0,alternateArgs,0);
01101 CleanupArg< Size3D >(arg1,alternateArgs,1);
01102 ImProcOutputArg< Image3Df >(arg2,args[2],alternateArgs,2);
01103 CleanupArg< Image3Df >(arg2,alternateArgs,2);
01104 CleanupArg< Vect3Di >(arg3,alternateArgs,3);
01105 }
01106 void
01107 ImProc_NormalizeAverage_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01108 {
01109 Image3Df& arg0 =*StringOrAlternateInputArg<Image3Df >( args[0] ,alternateArgs,0 );
01110 Image3Df& arg1 =*StringOrAlternateInputArg<Image3Df >( args[1] ,alternateArgs,1 );
01111 Image3Df& arg2 =*CreateOutputArg<Image3Df >(alternateArgs,2 );
01112 IP3D::NormalizeAverage(arg0, arg1, arg2);
01113 CleanupArg< Image3Df >(arg0,alternateArgs,0);
01114 CleanupArg< Image3Df >(arg1,alternateArgs,1);
01115 ImProcOutputArg< Image3Df >(arg2,args[2],alternateArgs,2);
01116 CleanupArg< Image3Df >(arg2,alternateArgs,2);
01117 }
01118 void
01119 ImProc_NormalizeAverageAndVariance_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01120 {
01121 Image3Df& arg0 =*StringOrAlternateInputArg<Image3Df >( args[0] ,alternateArgs,0 );
01122 Image3Df& arg1 =*StringOrAlternateInputArg<Image3Df >( args[1] ,alternateArgs,1 );
01123 Image3Df& arg2 =*CreateOutputArg<Image3Df >(alternateArgs,2 );
01124 IP3D::NormalizeAverageAndVariance(arg0, arg1, arg2);
01125 CleanupArg< Image3Df >(arg0,alternateArgs,0);
01126 CleanupArg< Image3Df >(arg1,alternateArgs,1);
01127 ImProcOutputArg< Image3Df >(arg2,args[2],alternateArgs,2);
01128 CleanupArg< Image3Df >(arg2,alternateArgs,2);
01129 }
01130 void
01131 ImProc_NormalizeJointHistogram_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01132 {
01133 Image3Df& arg0 =*StringOrAlternateInputArg<Image3Df >( args[0] ,alternateArgs,0 );
01134 Image3Df& arg1 =*StringOrAlternateInputArg<Image3Df >( args[1] ,alternateArgs,1 );
01135 Image3Df& arg2 =*CreateOutputArg<Image3Df >(alternateArgs,2 );
01136 int& arg3 =*OptionalDefaultValueArg<int >( args[3] ,alternateArgs,3 ,100);
01137 int& arg4 =*OptionalDefaultValueArg<int >( args[4] ,alternateArgs,4 ,200);
01138 IP3D::NormalizeJointHistogram(arg0, arg1, arg2, arg3, arg4);
01139 CleanupArg< Image3Df >(arg0,alternateArgs,0);
01140 CleanupArg< Image3Df >(arg1,alternateArgs,1);
01141 ImProcOutputArg< Image3Df >(arg2,args[2],alternateArgs,2);
01142 CleanupArg< Image3Df >(arg2,alternateArgs,2);
01143 }
01144 void
01145 ImProc_ComputeJointHistogramImage_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01146 {
01147 Image3Df& arg0 =*StringOrAlternateInputArg<Image3Df >( args[0] ,alternateArgs,0 );
01148 Image3Df& arg1 =*StringOrAlternateInputArg<Image3Df >( args[1] ,alternateArgs,1 );
01149 Image3Df& arg2 =*CreateOutputArg<Image3Df >(alternateArgs,2 );
01150 int& arg3 =*OptionalDefaultValueArg<int >( args[3] ,alternateArgs,3 ,0);
01151 int& arg4 =*OptionalDefaultValueArg<int >( args[4] ,alternateArgs,4 ,100);
01152 int& arg5 =*OptionalDefaultValueArg<int >( args[5] ,alternateArgs,5 ,200);
01153 IP3D::ComputeJointHistogramImage(arg0, arg1, arg2, arg3, arg4, arg5);
01154 CleanupArg< Image3Df >(arg0,alternateArgs,0);
01155 CleanupArg< Image3Df >(arg1,alternateArgs,1);
01156 ImProcOutputArg< Image3Df >(arg2,args[2],alternateArgs,2);
01157 CleanupArg< Image3Df >(arg2,alternateArgs,2);
01158 }
01159 void
01160 ImProc_TransformRectangularGrid_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01161 {
01162 Image3Df& arg0 =*CreateOutputArg<Image3Df >(alternateArgs,0 );
01163 Image3Dlinear<Vect3Df>& arg1 =*StringOrAlternateInputArg<Image3Dlinear<Vect3Df> >( args[1] ,alternateArgs,1 );
01164 Size3D& arg2 =*StringOrAlternateInputArg<Size3D >( args[2] ,alternateArgs,2 );
01165 bool& arg3 =*OptionalDefaultValueArg<bool >( args[3] ,alternateArgs,3 ,1);
01166 IP3D::TransformRectangularGrid(arg0, arg1, arg2, arg3);
01167 ImProcOutputArg< Image3Df >(arg0,args[0],alternateArgs,0);
01168 CleanupArg< Image3Df >(arg0,alternateArgs,0);
01169 CleanupArg< Image3Dlinear<Vect3Df> >(arg1,alternateArgs,1);
01170 CleanupArg< Size3D >(arg2,alternateArgs,2);
01171 }
01172 void
01173 ImProc_NoiseVarianceEstimation_StrArgs(const string &procName,const vector<string> &args,vector<TypeSafeGenericPointer> &alternateArgs)
01174 {
01175 Image3Df& arg0 =*StringOrAlternateInputArg<Image3Df >( args[0] ,alternateArgs,0 );
01176 double& arg1 =*CreateOutputArg<double >(alternateArgs,1 );
01177 IP3D::NoiseVarianceEstimation(arg0, arg1);
01178 CleanupArg< Image3Df >(arg0,alternateArgs,0);
01179 ImProcOutputArg< double >(arg1,args[1],alternateArgs,1);
01180 CleanupArg< double >(arg1,alternateArgs,1);
01181 }