【OpenCV】82 角点检测—shi

阅读: 评论:0

【OpenCV】82 角点检测—shi

【OpenCV】82 角点检测—shi

82 角点检测—shi-tomas角点检测

代码

import numpy as np
import 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 = cv.imread("../images/box.bmp")
cv.imshow("input", src)
result = process(src)
cv.imshow('result', result)
cv.waitKey(0)
cv.destroyAllWindows()

实验结果

解释

Harris角点检测是一种计算速度很慢的角点检测算法,很难实时计算,所有最常用的是shi-tomas角点检测算法,它的运行速度很快。
OpenCV中相关API与解释如下:

corners = cv.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]])
  • image单通道输入图像,八位或者浮点数
  • maxCorners表示最大返回关键点数目
  • qualityLevel表示拒绝的关键点 R < qualityLevel × max response将会被直接丢弃
  • minDistance 表示两个关键点之间的最短距离
  • corners是输出的关键点坐标集合
  • mask 表示mask区域,如果有表明只对mask区域做计算
  • blockSize 计算梯度与微分的窗口区域
  • useHarrisDetector 表示是否使用harris角点检测,默认是false 为shi-tomas
  • k = 0.04默认值,当useHarrisDetector为ture时候起作用

所有内容均来源于贾志刚老师的知识星球——OpenCV研习社,本文为个人整理学习,已获得贾老师授权,有兴趣、有能力的可以加入贾老师的知识星球进行深入学习。

本文发布于:2024-02-03 02:55:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170690011248184.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:OpenCV   shi
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23