在opencv中查找相位相关矩阵中的所有峰值
finding all peaks in phase correlation matrix in opencv
我正在用OpenCv用C++编写一个程序,该程序需要找到两个图像之间的相位相关矩阵,并找到高于响应阈值的所有峰值。我确实找到了一个名为phaseCorres()的函数,但它只使用minMaxLoc()返回最高峰。如何修改此函数以检索所有峰值?
如果该函数对您没有用处,我认为您应该使用其他方法来解决您的问题。我建议您采取以下步骤:
- 使用DFT(离散傅立叶变换)将图像变换到频域
- 由结果得到复矩阵的相位
- 计算相关性
- 应用一些阈值
对于这些步骤,您需要:
dft()
phase()
matchTemplate()
与method = CV_TM_CCORR_NORMED
threshold()
与type = THRESH_TOZERO
希望这对你有帮助。
最好按照phaseCorres()中提到的顺序进行。我们可以在执行FFTShift()之后再添加两个步骤,即归一化和阈值。现在,如果我们只是将使用minMaxLoc()提取的每个峰值附近和峰值处的像素更改为0(即黑色),我们就可以使用minMaxLoc()迭代地找到所有峰值。但是,只需通过在程序中而不是在原始源代码中创建函数的副本来更改函数即可。
相关文章:
- OpenCV CV 查找单应断言错误计数器 = > 4
- 在 openCV 矩阵中查找列最大值的索引和值
- 我最近正在阅读opencv源代码。有没有更好的方法来在opencv库中查找类定义?
- 根据现有的标签(而不是二进制图像)查找使用 OpenCV 连接的组件
- 查找从轮廓到点OPENCV C 的距离
- 在 OpenCV 和 C++ 中查找距轮廓中心最近的黑色像素
- 调试一种方法,用于使用C 中的OpenCV从视频中查找帧的平均帧
- OPENCV C - 查找图像中包含的图像
- 根据OPENCV中一个通道中的一个值,查找最大颜色像素
- 使用OPENCV查找内核/矩阵的等级
- 在 OpenCV Android 中的相机帧中查找主色
- OpenCV查找近距离物体的轮廓
- 使用OpenCV C++查找等高线中的极值点
- OpenCV查找轮廓的示例代码:向量释放问题
- 图像处理 - OpenCV - 查找图像中圆的面积和中心坐标
- 使用 Opencv 查找面部的姿势变化
- OpenCV:查找二进制 Mat 图像的所有非零坐标
- openCV C++查找轮廓
- 在c++中使用OpenCV查找每个blob中的像素数
- openCV 2.3.1 查找轮廓函数的链接错误