【发布时间】:2013-07-01 19:51:26
【问题描述】:
我正在尝试使用密集光流对图像进行复杂的扭曲。我正在尝试将第二张图片变形为与第一张图片大致相同的形状。
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 一起使用?
【问题讨论】:
-
您好,我看到了这篇文章,我也遇到了大致相同的问题(确切地说是相同的问题),我想知道您是否找到了解决方法? (我知道这篇文章很旧,对此我很抱歉,但我没有及时找到任何回复 :o)非常感谢!
-
@RaphaelSchimchowitsch:可能最好开始您自己的问题。如果我什至还有我编写的代码来执行此操作,我就不会……虽然我确实得到了一些工作。现在确定它是否与光流有关......
-
啊哈,好的,我已经发布了我自己的问题,但我发现了这篇文章,所以我想知道你是否可以帮助我:) 但是好的^^非常感谢你的回复:)
标签: c++ opencv opticalflow image-stabilization