我一直在阅读有关OpenCV中的cornerHarris的信息。我读了documentation,但不确定该函数返回什么。

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

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

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

我只是不明白上面的第二条语句,可能是因为我不明白,cornerHarris实际上返回了什么。

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

最佳答案

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



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



cv2.cornerHarris检测器返回找到的角。与往常一样,此方法不返回找到的角列表。取而代之的是,它返回一个2d数组-与输入大小相同-具有概率。此数组内的每个位置都使该像素成为角点的置信度(确切地说,不是单个像素,而是一个角点。它是以此坐标为中心的邻域)

因此,cv2.cornerHarris最有可能返回对其自己的预测充满信心的值。与dst>0.01*dst.max()该代码过滤了仅属于“低可信度”的角落。如果置信度高于最高置信度的1%,则检测到的任何拐角都将被标记为拐角。

09-27 06:00