OpenCV--特征匹配
OpenCV--特征匹配
代码和笔记
import cv2
import numpy as np
"""
特征匹配
"""
"""
暴力特征匹配:使用第一组(第一幅图)中的一个特征描述子,使用一些距离计算与第二组中的所有其他特征匹配,返回最接近的一个。
"""
img1 = cv2.imread('./img/cat.jpeg')
img2 = cv2.imread('./img/ca2.jpeg')
# 创建特征检测对象
sift = cv2.SIFT_create()
# 计算描述子
kp1, des1 = sift.detectAndCompute(img1, None)
kp2, des2 = sift.detectAndCompute(img2, None)
# 暴力特征匹配
# 计算距离的方式:1. NORM_L1:绝对值距离,SIFT和SURF使用。2. NORM_L2:欧氏距离,SIFT和SURF使用。3. HAMMING:汉明距离。ORB使用
bf = cv2.BFMatcher(cv2.NORM_L2)
# 进行匹配
match = bf.match(des1, des2)
# 绘制特征匹配
result = cv2.drawMatches(img1, kp1, img2, kp2, match, None)
cv2.imshow('result', result)
"""
FLANN特征匹配:快速最近邻搜索包,算法集合,用的很少
"""
cv2.waitKey(0)
cv2.destroyAllWindows()
原文地址:https://blog.csdn.net/GamBleout/article/details/144384034
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!