-- coding: utf-8 --
‘’’
SURF算法
‘’’
import cv2
import numpy as np
‘’‘1、加载图片’’’
img1 = cv2.imread(’./pic/logo1.jpg’,cv2.IMREAD_GRAYSCALE)
img1 = cv2.resize(img1,dsize=(600,400))
img2 = cv2.imread(’./pic/logo2.jpg’,cv2.IMREAD_GRAYSCALE)
img2 = cv2.resize(img2,dsize=(600,400))
image1 = img1.copy()
image2 = img2.copy()
‘’‘2、提取特征点’’’
#创建一个SURF对象
surf = cv2.xfeatures2d.SURF_create(25000)
#SIFT对象会使用Hessian算法检测关键点,并且对每个关键点周围的区域计算特征向量。该函数返回关键点的信息和描述符
keypoints1,descriptor1 = surf.detectAndCompute(image1,None)
keypoints2,descriptor2 = surf.detectAndCompute(image2,None)
print(‘descriptor1:’,descriptor1.shape,‘descriptor2’,descriptor2.shape)
#在图像上绘制关键点
image1 = cv2.drawKeypoints(image=image1,keypoints = keypoints1,outImage=image1,color=(255,0,255),flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
image2

本文介绍了如何在Python中利用OpenCV库实现SURF(Speeded Up Robust Features)算法,包括加载图片、提取特征点、匹配特征点,并展示了匹配后的结果图像。
最低0.47元/天 解锁文章
1511





