【OpenCV】82 角点检测—shi-tomas角点检测

82 角点检测—shi-tomas角点检测 代码
import numpy as npimport cv2 as cvdef process(image, opt=1):# Detecting cornersgray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)corners = cv.goodFeaturesToTrack(gray, 100, 0.05, 10)print(len(corners))for pt in corners:print(pt)b = np.random.random_integers(0, 256)g = np.random.random_integers(0, 256)r = np.random.random_integers(0, 256)x = np.int32(pt[0][0])y = np.int32(pt[0][1])cv.circle(image, (x, y), 5, (int(b), int(g), int(r)), 2)# outputreturn imagesrc = http://www.kingceram.com/post/cv.imread("../images/box.bmp")cv.imshow("input", src)result = process(src)cv.imshow('result', result)cv.waitKey(0)cv.destroyAllWindows()
实验结果

【OpenCV】82 角点检测—shi-tomas角点检测

文章插图
解释
角点检测是一种计算速度很慢的角点检测算法,很难实时计算,所有最常用的是shi-tomas角点检测算法,它的运行速度很快 。
中相关API与解释如下:
corners = cv.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]])
【【OpenCV】82 角点检测—shi-tomas角点检测】所有内容均来源于贾志刚老师的知识星球——研习社,本文为个人整理学习,已获得贾老师授权,有兴趣、有能力的可以加入贾老师的知识星球进行深入学习 。