cv2.cornerHarris 返回什么?

Sop*_*hia 2 python opencv image-processing computer-vision

我一直在阅读有关cornerHarrisOpenCV 的内容。我通读了文档,但我不确定这个函数返回什么。

在阅读示例时,有一条语句写为:

dst = cv2.cornerHarris(gray,2,3,0.04)

img[dst>0.01*dst.max()]=[0,0,255]
Run Code Online (Sandbox Code Playgroud)

我只是无法理解上面的第二个语句,可能是因为我不明白,cornerHarris实际上返回的是什么。

我确实感觉到应用了某种阈值,但我无法解释。

She*_*dil 5

我刚刚检查了您链接的示例页面:

最佳值的阈值,它可能因图像而异。img[dst>0.01*dst.max()]=[0,0,255]

这是我实际寻找的文档页面:https : //docs.opencv.org/2.4/modules/imgproc/doc/feature_detection.html?highlight=cornerharris#cornerharris

可以找到图像中的角作为此响应图的局部最大值。

cv2.cornerHarris 检测器返回找到的角。像往常一样,此方法不会返回找到的角的列表。相反,它返回一个二维数组 - 与输入大小相同 - 具有概率。该数组内的每个位置都保持该像素是角点的置信度(准确地说,它不是预测为角点的单个像素。它是以该坐标为中心的邻域)

所以最有可能 cv2.cornerHarris 返回一个值来保证它自己的预测。并使用 dst>0.01*dst.max() 代码过滤器角落,这些角落只是“低置信度角落”。如果置信度高于最高置信度的 1%,则检测到的任何角都将被标记为角。