ORB角点检测
代码:
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plot
img=cv.imread(r"C:\Users\Windows\Desktop\OIP-C.jpg")
img1=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
img3=cv.Canny(img1,60,120)
plot.imshow(img3, cmap=plot.cm.gray)
plot.show()
orb=cv.ORB_create(nfeatures=400)#chuangjianorb变量,设定检测特征点的最大数量
kp,des=orb.detectAndCompute(img3,None)#获取关键点信息,特征点描述符
print(des.shape,"特征点数量为:%d,描述符为:%d"%(des.shape[0],des.shape[1]))
img5=cv.drawKeypoints(img3,kp,None,color=(0,255,255),flags=0)#绘制特征点在检测图像上
plot.imshow(img5[:,:,::-1])
plot.show()
实验结果
1.未检测之前:
2.Canny检测:
3.ORB试验检测结果:
小记:先进行边缘检测,再进行特征点检测效果会好很多