我已经在OpenCV中阅读了cornerHarris
。我通读了documentation,但不确定该函数返回什么。
在阅读examples时,有一条语句写为:
dst = cv2.cornerHarris(gray,2,3,0.04)
img[dst>0.01*dst.max()]=[0,0,255]
我只是听不懂上面的第二句话,可能是因为我听不懂cornerHarris
实际返回的内容。
我确实认为,正在应用某种阈值,但是我无法解释。
答案 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%,则检测到的任何拐角都将被标记为拐角。