Я пытаюсь выполнить сложную деформацию изображения с помощью Dense Optical Flow. Я пытаюсь преобразовать второе изображение примерно в ту же форму, что и первое изображение.
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 );
Я рассчитываю поток из двух кадров в градациях серого. Теперь я пытаюсь переназначить свое исходное (то есть не в оттенках серого) изображение, используя эту информацию о потоке, используя функцию cv::remap
. Однако я получаю от него очень сильно искаженное изображение. Я просто получаю оранжево-черное изображение, которое имеет небольшое сходство с моим исходным изображением.
Как использовать cv::remap
с рассчитанным flow
?