我前面的帖子有写ubuntu和windows下opencv环境搭建
特征检测
1.特征点最好是选择角点(Harris)
2.什么是角点?①在特征中最重要的是角点;②灰度梯度的最大值对应的像素;③两条线的角点;④极值点(一阶导数最大值,二阶导数为0)
Harris角点检测
①光滑地区,平坦且没有参照物,衡量系数不变;②边沿地区,延马路走中心点不变,横穿马路中心点变化,衡量系数变化剧烈;③在交点处,衡量系数都变化剧烈。
API:dst = cv2.cornerHarris(img,dst,blockSize,ksize,k)
角点检测的是灰度图:gray = cv2.cvtColor(img,cv2.BG2GRAY)
Shi-Tomasi角点检测
①是Harris角点检测的改进;②Harris角点检测的稳定性和k值有关,而k是个经验值
goodFeaturesToTrack(img,maxCorners,...)
maxCorners:角点的最大值,0表示无限制
qualityLevel:小于1.0的正数,一般为0.01~0.1
minDistance:角之间最小欧式距离,忽略小于此距离的点
mask:感兴趣的区域
blockSize:检测窗口
useHarrisDetector:是否使用Harris算法
k:默认0.04
SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)
Harris角点具有旋转不变的特性;但缩放后,原来的角点可能就不是角点了
kp=sift.detect(img, ...)
drawKeypoints(gray,kp,img)
计算SIFT描述子
关键点:位置,大小和方向
关键点描述子:记录了关键点周围对其有

最低0.47元/天 解锁文章
1320

被折叠的 条评论
为什么被折叠?



