Комментарии 2
что-то сложноватая функция для градиента....
ИМХО первым приближением было бы найти "центр тяжести" контура .
а потом вычислять градиент для , только
1) сначала искать угол фи, по схеме "один раз отзеркалить, а потом итеративно поворачивать на угол 2фи" пока не минимизируется ошибка с оригиналом (они же симметричны относительно центра)
2)потом искать дельта-х, по схеме "повернуть на угол фи (найденный на этапе1)и отзеркалить, итеративно смещать на расстояние 2дельта-х", пока не минимизируется ошибка с повернутым.
по идее так должно быть быстрее - два одномерных поиска быстрее двумерного ?
Спасибо за комментарий!
Оценка положения оси вращения с помощью центра масс усреднённого проекционного снимка была рассмотрена нами в работе. Эксперименты показали, что в ряде случаем она дает неверный ответ. Например, когда в область видимости детектора кроме самого образца попадает подставка для его крепления. На получаемых в таких условиях проекционных данных, помимо контуров объекта, оказываются отчетливо различимы контуры подставки. Центр масс таких проекций оказывается сильно смещенным от центра масс проекции исключительно самого объекта. Поиск сдвига оси вращения вокруг положения центра масс в совокупности столика и объекта приводит к неверным результатам.
Предложенная Вами оптимизация целевого функционала, без сомнения, возможна и также была нами апробирована. Но она также показала себя неустойчивой к нарушениям условий сканирования объекта. Такая оптимизация приводит к ошибочным результатам в случае выхода объекта из поля видимости детектора. Описанная в тексте статьи Хабра оптимизация оказывается более устойчива к выходу объекта из поля видимости детектора, присутствию в поле видимости детектора столика, а также сильной зашумленности проекций. Это подтверждено нашими экспериментами, помещенными в работе.
Кручу, верчу, выровнять ось вращения хочу! Или о том, как ось вращения объекта автоматически выравнивается в STE