Деформированное изображение OpenCV на основе calcOpticalFlowFarneback

я пытаюсь выполнить сложную деформацию изображения с помощью плотного оптического потока (я пытаюсь обернуть второе изображение примерно в ту же форму, что и первое изображение). Я'Я, наверное, все это неправильно, но я опубликую то, что ямы пробовали:

cv::Mat flow;
cv::calcOpticalFlowFarneback( mGrayFrame1, mGrayFrame2, flow, 0.5, 3, 15, 3, 5, 1.2, 0 );

cv::Mat newFrame = cv::Mat::zeros( frame.rows, frame.cols, frame.type() );
cv:remap( frame, newFrame, flow, cv::Mat(), CV_INTER_LINEAR );

Идея в том, что я рассчитываю расходный мат из 2 шкал серого. Я получил коврик, который, кажется, имеет смысл, но теперь яЯ пытаюсь переназначить мое оригинальное (т.е. не в градациях серого) изображение, используя эту информацию о потоке.

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

Я предполагаю, что ям недопонимание функции переназначения, и он либо неделать то, что я хочу, или яЯ получаю что-то не так с тем, что ям проходя в.

Если у первого есть какие-либо предложения относительно того, как я могу решить эту проблему? Если последнее, что я делаю не так?

Любая помощь очень ценится!

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

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