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
相关推荐
Pniubi7 分钟前
力扣438.找到字符串中所有字母异位词
算法·leetcode·职场和发展
ATMQuant1 小时前
量化指标解码21:逻辑回归支撑阻力 - 让逻辑回归给关键价位打分
python·机器学习·逻辑回归·量化交易·技术指标
q0371802 小时前
深色 IDE 截图 OCR 老是漏字,我加了一层预处理,顺手把识别结果做成了可搜索历史
python
蜗牛8752 小时前
个人机票监控开源项目:6 个平台、10 条通道的自托管方案
python
東隅已逝,桑榆非晚3 小时前
算法6. 双指针法-查找总价格为目标的两个商品
c++·学习·算法
秋名山小白3 小时前
Playwright UI 自动化测试实战教程
python·ui
Eyfcom3 小时前
〖物联网终端实战 01〗UWB 室内高精度定位:仓储 AGV 与人员的厘米级轨迹追踪
物联网·算法·物流系统·快递系统·跨境物流快递系统·物联网终端实战
bro_Java6664 小时前
《排序的底层逻辑:比较、交换与分治》
java·算法·排序算法
AI源码4 小时前
基于 Python 的汽车市场数据分析与可视化平台
python·数据分析·汽车
会飞锦鲤4 小时前
基于 SVM + HOG 的铸造缺陷检测系统
python·opencv·机器学习·计算机视觉·缺陷检测·图像分类·svm