Компоненты Matlab opticalFlow для комплексного векторного поля - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь обновить устаревший код, который использует больше не поддерживаемый вызов MATLAB, до

   opticalFlowClass = vision.OpticalFlow('OutputValue', ...
     'Horizontal and vertical components in complex form', 'Method', method);

, который, как указывает вызов, выводит матрицу M x N в сложной форме. Текущий вызов, например

     opticalFlowClass = opticalFlowHS;
     flow = estimateFlow(opticalFlowClass, video);

выводит объект потока с компонентами

    flow.Vx
    flow.Vy
    flow.Magnitude
    flow.Orientation      

Из-за зависимостей в другом месте кода и во избежание полного переписывания я хотел бы использовать компоненты из нового вызова для формирования матрицы в сложной форме старого вызова. Однако я не смог найти никакой документации, как создавалась сложная форма. Мой вопрос

Какова структура сложной формы и как она была создана из компонентов и ориентации?

Будем весьма благодарны за любые ссылки на старую документацию, объясняющие это.

Редактировать: я должен добавить, что я предполагаю, что

    Flow = complex(Vx,Vy),

но у меня нет поддержки для этого

1 Ответ

0 голосов
/ 07 сентября 2018

Из документации неясно, что конкретно означает эта опция вывода. Если вы заинтересованы, вы можете получить доступ к устаревшей документации по адресу.

https://www.mathworks.com/help/releases/R2015a/vision/ref/vision.opticalflow-class.html

Погружаясь через недокументированную функцию videooptflowlines, получается, что real(flow) представляет горизонтальную скорость с положительным правым, а imag(flow) представляет вертикальную скорость с положительным нисходящим. Так что ваши предположения верны

flowComplex = complex(flow.Vx, flow.Vy);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...