(Все это только теоретические идеи, и я не могу предоставить вам алгоритм к нему. Но я думаю, он должен легко работать с искаженными изображениями, как у вас там ... но, возможно, это полезно для вас)

дать вам некоторое представление о том, что я делаю: я пытаюсь количественно записать изменения потока сжимаемой жидкости с помощью анализа изображений. Один из способов сделать это - использовать тот факт, что показатель преломления жидкости напрямую связан с ее плотностью. Если вы устанавливаете какое-либо изображение за потоком, искажение изображения из-за изменений показателя преломления во всем поле жидкости приводит к градиенту плотности, который помогает характеризовать структуру потока.

У меня есть набор процедур, которые делают это успешно с помощью обычного 2D-шаблона точек. Точечный рисунок слегка искажен, и, сравнивая положение точек на искаженном изображении с положением на неискаженном изображении, я получаю поле смещения, которое именно то, что мне нужно. Проблема с этим методом - разрешение. Разрешение ограничено количеством точек в поле, и я изучаю методы, которые дают мне больше данных.

У меня была одна идея - использовать регулярную сетку горизонтальных и вертикальных линий. Это изображение будет искажаться таким же образом, но вместо того, чтобы получать только смещение точки, у меня будет непрерывное искажение сетки. Кажется, что должен быть какой-то стандартный алгоритм или процедура, чтобы сравнивать одну геометрическую сетку с другой и выводить какое-то поле смещения. Тем не менее, я не нашел ничего подобного в своем исследовании.

У кого-нибудь есть идеи, которые могли бы указать мне правильное направление? К вашему сведению, я не информатик - я инженер. Я говорю это только потому, что может быть какой-то очевидный подход, которым я пренебрегаю из-за того, что пришел из другой области. Но я могу программировать. Я использую MATLAB, но я могу читать Python, C / C ++ и т. Д.

Вот примеры типов изображений, с которыми я работаю:

     Regular:                               Distorted: 

--------

Ответы на вопрос(2)

Ваш ответ на вопрос