Para implementar el algoritmo ORB en OPenCV, use:
1. Crear una instancia del ORB
orb = cv.xfeatures2d.orb_create(nfeatures)
parámetro:
nfeatures: el número máximo de puntos de características
2. Use orb.detectAndCompute() para detectar puntos clave y calcular
kp,des = orb.detectAndCompute(gray,None)
parámetro:
·gris: Imagen para la detección de puntos clave, tenga en cuenta que es una imagen en escala de grises
devolver:
kp: información de puntos clave, incluida la posición, la escala y la información de dirección
des: descriptor de punto clave, vector de característica BREVE de cada punto clave, cadena binaria,
3. Dibuje los resultados de detección de puntos clave en la imagen
cv.drawKeypoints(image, keypoints, outputimage, color, flags)
cv.drawKeypoints(imagen, puntos clave, imagen de salida, color, banderas)
Ejemplo:
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
# 1 图像读取
img = cv.imread('./image/tv.jpg')
# 2 ORB角点检测
# 2.1 实例化ORB对象
orb = cv.ORB_create(nfeatures=500)
# 2.2 检测关键点,并计算特征描述符
kp,des = orb.detectAndCompute(img,None)
print(des.shape)
# 3 将关键点绘制在图像上
img2 = cv.drawKeypoints(img, kp, None, color=(0,0,255), flags=0)
# 4. 绘制图像
plt.figure(figsize=(10,8),dpi=100)
plt.imshow(img2[:,:,::-1])
plt.xticks([]), plt.yticks([])
plt.show()
BRIEF算法04