c++ - OpenCV phaseCorrelate用法

标签 c++ opencv

我正在使用 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/

相关文章:

c++ - 我们如何在 C++ 中调用具有 "parameter=value"的函数?

c++ - 默认写文件到桌面

c++ - 使用-lopencv_videoio的Opencv编译不起作用

java - OpenCV 2.4.9 在 eclipse Juno 上使用 java - Ubuntu 14.04

java - 如何获得跟踪图像的角落?

c++ - 包含在 Qt Creator 中添加外部库的路径?

c++ - 如何从地址中获取字符串?

c++ - 防止不需要互联网连接的桌面应用程序被盗版?

c++ - 对 16 位灰度垫进行着色仅产生一半图像

c++ - xlc: 模板类的 sizeof 不工作