Общее: Я надеюсь, что пример использования, который я собираюсь описать, является простым случаем проблемы оптического потока, и поскольку у меня мало знаний по этому вопросу, я было интересно, есть ли у кого-нибудь какие-либо предложения о том, как я могу подойти к решению моей проблемы.
Исследование, которое я уже сделал: Я начал читать Оптимальное оценивание оптического потока с высокой точностью на основе теории деформирования, и я планирую просмотреть документ Particle Video. Я нашел оптический поток MATLAB High Optical Optical Flow. Тем не менее, документы (и код), похоже, описывают концепции, которые очень вовлечены и могут потребовать много времени для того, чтобы я мог понять и понять. Я надеюсь, что решение моей проблемы может быть более простым.
Проблема: У меня есть последовательность изображений. На изображениях изображен процесс разрушения материала, где материал и фон черные, а трещины - белые. Мне интересно перемещаться по последовательности изображений в обратном направлении, пытаясь сопоставить все трещины, образовавшиеся в процессе обрыва, с первым черным изображением. Вы можете думать о материале как о большой загадке, и я пытаюсь собрать фигуры в обратном порядке, чтобы они сломались.
В каждом изображении могут появляться некоторые трещины, которые только появляются, и/или некоторые трещины, которые были полностью сформированы (и, таким образом, создали фрагмент). В течение всего процесса разрушения некоторые фрагменты могут отделяться и ломаться дальше. Фрагменты также могут перемещаться дальше друг от друга (небольшое изменение между последующими кадрами).
Желаемый результат:. Все трещины/строки в последовательности отображаются на первое изображение в последовательности.
Дополнительные примечания: Изображения доступны в полутоновом формате (то есть в оригинале), а также в двоичном формате, где трещины были выделены белым цветом, а фон полностью черный. Ниже приведены примеры изображений.
Верхняя строка показывает исходные изображения, а нижняя строка показывает двоичные изображения. Как вы можете видеть, трещина, которая идет вниз по середине, становится все шире и шире по мере продвижения последовательности изображений. Таким образом, нижняя трещина движется вместе с нижним фрагментом. При перемещении последовательности в обратном направлении я надеюсь, что алгоритмически поймут, что средняя трещина объединяется как одна (и правильно отображает ее на первое изображение), а также правильно отображает нижнюю трещину, сохраняя правильное соответствие (размер и положение) с помощью нижний фрагмент.
Последовательность обычно содержит около 30-40 изображений, поэтому я только что показал начальное подмножество. Кроме того, хотя эти изображения не показывают его, возможно, что конкретное изображение содержит только начало трещины (т.е. Ее первоначальный вид), а в последующих изображениях оно становится длиннее и длиннее и может соединяться с другими трещинами.
Язык:. Хотя это и не обязательно, я хотел бы реализовать решение с помощью MATLAB (только потому, что большая часть другого кода, относящегося к проекту, была выполнена в MATLAB). Однако, если OpenCV может быть проще, я гибко использую язык/библиотеку.
Любые идеи приветствуются.