python+opencv特征匹配算法

python+opencv特征匹配算法

1.安装

python 复制代码
pip install opencv-python
pip install numpy

2.算法明细

python 复制代码
import cv2
import numpy as np

# 读取两张图像
img1 = cv2.imread('image1.jpg',0)  # queryImage
img2 = cv2.imread('image2.jpg',0)  # trainImage

# 初始化SIFT对象
sift = cv2.xfeatures2d.SIFT_create()

# 计算两个图像的SIFT特征和描述符
kp1, des1 = sift.detectAndCompute(img1,None)
kp2, des2 = sift.detectAndCompute(img2,None)

# 使用FLANN匹配器进行特征匹配
FLANN_INDEX_KDTREE = 1
index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5)
search_params = dict(checks=50)
flann = cv2.FlannBasedMatcher(index_params, search_params)
matches = flann.knnMatch(des1,des2,k=2)

# 根据Lowe的比率测试进行匹配
good_matches = []
for m,n in matches:
    if m.distance < 0.7*n.distance:
        good_matches.append(m)

# 计算并输出相似度
similarity = len(good_matches)/len(matches)
print('相似度: ', similarity)

# 输出匹配结果
img3 = cv2.drawMatches(img1,kp1,img2,kp2,good_matches,None,flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS)

# 显示匹配结果
cv2.imshow('Matches', img3)
cv2.waitKey(0)
cv2.destroyAllWindows()

3.报错处理

python 复制代码
AttributeError: module 'cv2' has no attribute 'xfeatures2d'

由于该算法已被申请专利,只能使用低版本

python 复制代码
pip install opencv-python==3.4.2.16
pip install opencv-contrib-python==3.4.2.16
相关推荐
lu_rong_qq25 分钟前
决策树 DecisionTreeClassifier() 模型参数介绍
算法·决策树·机器学习
LNTON羚通6 小时前
摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现
算法·目标检测·音视频·监控·视频监控
湫ccc7 小时前
《Python基础》之字符串格式化输出
开发语言·python
mqiqe8 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin8 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
哭泣的眼泪4088 小时前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame
湫ccc8 小时前
《Python基础》之基本数据类型
开发语言·python
Microsoft Word8 小时前
c++基础语法
开发语言·c++·算法
天才在此9 小时前
汽车加油行驶问题-动态规划算法(已在洛谷AC)
算法·动态规划
drebander9 小时前
使用 Java Stream 优雅实现List 转化为Map<key,Map<key,value>>
java·python·list