cv2.cornerHarris返回什么?

时间:2019-02-17 17:00:27

标签: python opencv image-processing computer-vision

我已经在OpenCV中阅读了cornerHarris。我通读了documentation,但不确定该函数返回什么。

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

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

img[dst>0.01*dst.max()]=[0,0,255]

我只是听不懂上面的第二句话,可能是因为我听不懂cornerHarris实际返回的内容。

我确实认为,正在应用某种阈值,但是我无法解释。

1 个答案:

答案 0 :(得分:1)

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

  

最佳值的阈值,它可能因图像而异。 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%,则检测到的任何拐角都将被标记为拐角。