我正在使用OpenCv编写C ++程序,需要在两个图像之间找到phase correlation矩阵,并找到高于响应阈值的所有峰值。我找到了一个名为phaseCorrRes()的函数,但它只使用minMaxLoc()返回最高峰。如何修改此功能以检索所有峰值?
答案 0 :(得分:3)
我认为如果该功能对您没用,我会用其他方式来解决您的问题。我建议您执行以下步骤:
您需要执行以下步骤:
dft()
phase()
matchTemplate()
与method = CV_TM_CCORR_NORMED
threshold()
与type = THRESH_TOZERO
希望这会对你有所帮助。
答案 1 :(得分:1)
最好遵循phaseCorrRes()中提到的顺序。我们可以在携带FFTShift()之后再添加两个步骤,这些步骤是规范化和阈值。现在,如果我们只是将使用minMaxLoc()提取的每个峰值附近和每个峰值的像素更改为0(即黑色),我们可以使用minMaxLoc()迭代地找到所有峰值。但是,只需通过在程序中创建函数的副本而不是在原始源代码中更改函数。