本文主要是介绍Shi-Tomasi Corner Detect,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Harries Corner Detector 请看:https://mp.csdn.net/postedit/88410331
我们知道Harris Corner Detecor角点得分函数为:
而Shi-Tomasi的角点得分函数为:
如果R大于某个设定的阈值,则此处被认为是一个角点。
OpenCV中Shi-Tomasi Corner Detector函数--cv2.goodFeaturesToTrask()。它将在图像中由Shi-Tomasi Detector找到n个最强的corner(或者指定Harris Corner Detection),通常,图像应该是一幅灰度图,并且你需要指定想要寻找的corners的数量,指定质量级别quality-level,其值为0-1之间,这表示角点的最小质量,低于该值的Corners都将被拒绝。然后提供检测到的corners的最小欧式距离。注:所以低于quality-level的corner都将被丢弃,将剩余的corners基于quality-level降序的方式排列,然后函数取第一个最强壮的角,在最小距离范围内丢弃所有邻近的角,返回N个最强壮的角。
OpenCV Code:
import numpy as np
import cv2image = cv2.imread('../image/001.png')
image_yuan_gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(image_yuan_gray,25,0.01,5)
corners = np.int0(corners)for i in corners:x,y = i.ravel()cv2.circle(image,(x,y),3,255,-1)cv2.imshow('image_yuan_gray', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果:
这篇关于Shi-Tomasi Corner Detect的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!