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
相关推荐
m0_734949792 分钟前
PHP怎么使用Eloquent Attribute Synthesis属性合成_Laravel多源数据融合【指南】
jvm·数据库·python
Fleshy数模6 分钟前
玩转 Python:多线程、装饰器、视觉检测与正则匹配实战
开发语言·python·视觉检测
Lucas_coding6 分钟前
【xiaozhi-esp32-server-服务端全模块启动】 xiaozhi-server 获取6位有效验证码
python
Felven7 分钟前
B. Make Almost Equal With Mod
数据结构·算法
脆皮炸鸡7558 分钟前
Linux~~基础IO
linux·运维·服务器·经验分享·算法·学习方法
❆VE❆9 分钟前
python实战(一):对接AI大模型并应用
开发语言·人工智能·python·ai
qq_3729069311 分钟前
CSS怎么在flex布局中实现项目均分间距_设置justify-content space-evenly
jvm·数据库·python
colofullove14 分钟前
文本分块策略与预处理
算法
yangtuoni14 分钟前
vscode调试C++ python相关配置
c++·vscode·python
三毛的二哥15 分钟前
BEV:感知抖动问题及解决办法
人工智能·算法·计算机视觉