如何正确地使用带有OpenCV的Harris检测器检测角点?

2024-03-29 04:48:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在测试一些图像处理,从数字指纹中获取细节。到目前为止我在做:

  1. 均衡直方图
  2. 二值化
  3. 应用张勋算法细化线条(这是不正常的工作)。在
  4. 试着在缩小后的图像中确定角点并显示出来。在

所以,我得到的修改是:

enter image description hereenter image description hereenter image description hereenter image description here

但是,我无法获得最后一幅图像中可能的角点,它属于Mat对象的thinned实例。在

这是尝试获取弯角的代码:

corners_image = cornerHarris(thinned,1,1,0.04)
corners_image = dilate(corners_image,None)

但是在结果矩阵上尝试imshow会显示如下内容:

enter image description here

一个黑色图像。在

那么我应该如何确定角呢?在


Tags: 对象图像image算法数字直方图细节图像处理
1条回答
网友
1楼 · 发布于 2024-03-29 04:48:54

实际上,cv::cornerHarris返回corener响应,而不是转角本身。看起来你的图像上的响应太小了。在

{如果你想在原始图像上标记一些更大的点,那么你可能会得到一些更大的点:

corners = cv2.cvtColor(thinned, cv2.COLOR_GRAY2BGR)
threshold = 0.1*corners_image.max()
corners [corners_image>threshold] = [0,0,255]
cv2.imshow('corners', corners)

然后您可以调用imshow,红色的点将对应于角点。很可能您需要调整threshold参数以获得所需的结果。在

请参阅tutorial中的更多详细信息。在

相关问题 更多 >