我正在使用 OpenCV 处理二值图像,它们具有非常不同的相位角,我尝试使用 phaseCorrelate 检测这些相位角。 我的代码有效,但结果令人失望:我收到一些 x 轴的值,y 轴的值非常小,几乎不 > 0(例如 2,5E-15),所以我将它们四舍五入为整数例如-365/0,我用它来移动和翻转我的二进制文件。 我的代码如下所示:
Mat reference; // is of some size and type CV_8U,
Mat workImage; // dito
...
cv::Point2d cr = phaseCorrelate( Mat_<float>( reference ), Mat_<float>( workImage ) );
Mat correctedMat = ShiftAndFlipImage(workImage, cr);
我的方法 ShiftAndFlipImage
的结果等于我收到的图像
GIMP: Layer-Transform-Offset (Ctrl+Shift+O),所以毫无疑问。
我唯一的问题是关于 phaseCorrelate
的结果。
我也尝试过这种 hanning-Window 方法,但没有进展。
有人可以对此提出建议吗? 结果图像与引用不匹配,
最佳答案
在这种特殊情况下,我只需要切换参数,导致符号发生变化。我的过错 8-| (此外,我会在新帖子中提出我对此的真正问题)
关于c++ - OpenCV phaseCorrelate用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37752885/