MCPcopy Create free account
hub / github.com/Kitware/VTK / CreateFilter

Function CreateFilter

Examples/ImageProcessing/Cxx/ImageBenchmark.cxx:308–927  ·  view source on GitHub ↗

create the filter that will be benchmarked

Source from the content-addressed store, hash-verified

306}
307// create the filter that will be benchmarked
308static vtkThreadedImageAlgorithm* CreateFilter(const std::string& filterName, const int size[3])
309{
310 // filter name may be followed by colon and comma-separated args
311 std::vector<std::string> args;
312 size_t pos = filterName.find(':');
313 if (pos == std::string::npos)
314 {
315 args.push_back(filterName);
316 }
317 else
318 {
319 args.push_back(filterName.substr(0, pos));
320 do
321 {
322 pos++;
323 size_t endpos = filterName.find(':', pos);
324 args.push_back(filterName.substr(pos, endpos - pos));
325 pos = endpos;
326 } while (pos != std::string::npos);
327 }
328
329 //-----
330 // all the available filters and their options
331 //-----
332 if (args[0] == "median")
333 {
334 vtkSmartPointer<vtkImageMedian3D> filter = vtkSmartPointer<vtkImageMedian3D>::New();
335
336 int kernelsize = 3;
337
338 if (args.size() > 1)
339 {
340 size_t n = args[1].find('=');
341 if (args[1].substr(0, n) != "kernelsize" || n == std::string::npos ||
342 n + 1 == args[1].size() || args[1][n + 1] < '1' || args[1][n + 1] > '9' || args.size() > 2)
343 {
344 std::cerr << "median options: kernelsize=N\n";
345 return nullptr;
346 }
347 std::string num = args[1].substr(n + 1);
348 VTK_FROM_CHARS_IF_ERROR_RETURN(num, kernelsize, nullptr);
349 }
350
351 filter->SetKernelSize(kernelsize, kernelsize, kernelsize);
352 filter->Register(nullptr);
353 return filter;
354 }
355 //-----
356 else if (args[0] == "reslice")
357 {
358 vtkSmartPointer<vtkImageReslice> filter = vtkSmartPointer<vtkImageReslice>::New();
359
360 bool mask = false;
361 std::string kernel;
362 int kernelsize = 0;
363 double rotation[4] = { 0.0, 0.0, 0.0, 0.0 };
364
365 for (size_t k = 1; k < args.size(); k++)

Callers 1

RunBenchmarkFunction · 0.85

Calls 15

SetSplineDegreeMethod · 0.80
SetInterpolatorMethod · 0.80
SetWindowHalfWidthMethod · 0.80
RotateWXYZMethod · 0.80
SetKernel3x3Method · 0.80
SetKernel5x5Method · 0.80
SetKernel7x7Method · 0.80
SetKernel3x3x3Method · 0.80
SetKernel5x5x5Method · 0.80
SetKernel7x7x7Method · 0.80

Tested by

no test coverage detected