我正在测试一些图像处理,以便从数字指纹中获取 minutiae 。我到目前为止这样做了:
因此,我获得的修改是:
但是,我无法在最后一张图片中获取可能的角落,这些角落属于thinned
Mat
对象的实例。
这是试图摆脱困境的代码:
corners_image = cornerHarris(thinned,1,1,0.04)
corners_image = dilate(corners_image,None)
但是在结果矩阵上尝试imshow
会显示如下内容:
黑色图片。
我该如何确定角落?
答案 0 :(得分:2)
实际上cv::cornerHarris
会返回核心响应,而非角点本身。看起来您的图片回复太小。
如果您想要显示角落,您可能会获得较大的某些threshold
参数的响应,那么您可以在原始图像上标记此点,如下所示:
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
,红点将对应角点。您很可能需要调整阈值参数以获得所需的结果。
在tutorial中查看更多详情。