Я выполняю регистрацию изображений с помощью simpleITK (python), используя ImageRegistrationMethod.Execute()
подход.
Цель состоит в том, чтобы собрать некоторую статистику процесса регистрации изображений (например, выяснить, когда это удается, а когда — нет), поэтому я инициализирую ImageRegistrationMethod
Экземпляр с различными начальными преобразованиями, в том числе и такими, которые не приведут к успешной регистрации.
При выполнении simpleITK иногда выдает исключение, что нормально, так как я могу это уловить. Но иногда я получаю предупреждения в stderr, как это
WARNING: In /mnt/emptyplaceholder/projects/elastix/build/ITK-prefix/include/ITK-4.12/itkObjectToObjectMetric.hxx, line 529
Self (0x3a0af70): No valid points were found during metric evaluation. For image metrics, verify that the images overlap appropriately. For instance, you can align the image centers by translation. For point-set metrics, verify that the fixed points, once transformed into the virtual domain space, actually lie within the virtual domain.
или это
WARNING: In /mnt/emptyplaceholder/projects/elastix/build/ITK-prefix/include/ITK-4.12/itkCorrelationImageToImageMetricv4HelperThreader.hxx, line 85
CorrelationImageToImageMetricv4HelperThreader (0x3a01370): collected only zero points
но регистрация продолжается.
Вопрос в том, как отличить (от python) случаи, когда регистрация прошла совершенно гладко, с такими случаями с предупреждениями. Простой и глупый вариант — отслеживать stderr, но, может быть, есть какие-то функции ITK, чтобы сообщать об этих случаях?
Лучше всего задать такой вопрос на ITK речь форум, который сопровождается большим количеством экспертов ITK, чем itk
тег на StackOverflow.
Других решений пока нет …