python - 使用 FLANN 索引将图片与数据库匹配
问题描述
我想将一张图片与包含大约 1000 张图片的数据库进行匹配。我希望在接收到图像作为输入后,程序会返回数据库中最相似的图片。
import numpy as np
import cv2
import os
scanned = 'input.jpg'
orb = cv2.ORB_create()
FLANN_INDEX_LSH = 6
flann_params = dict(algorithm = FLANN_INDEX_LSH, table_number = 10, key_size = 20, multi_probe_level = 0)
search_params = dict(checks=50)
flann = cv2.FlannBasedMatcher(flann_params,search_params)
des_all = None
for filename in os.listdir('images'):
img2 = cv2.imread('images/' + filename, 0)
kp2, des2 = orb.detectAndCompute(img2,None)
flann.add([des2])
print ("Training...")
flann.train()
img1 = cv2.imread(scanned, 0)
kp1, des1 = orb.detectAndCompute(img1,None)
print ("Matching...")
matches = flann.knnMatch(des1,k=2)
在那之后,我必须做什么才能让我的哪些图像最匹配?如何使用匹配结果?我找不到任何有用的文档感谢您的帮助。
解决方案
推荐阅读
- python - Python中的同构字符串
- flutter - 解决我的 Flutter Facebook 登录/登录错误
- jmeter - JMeter Beanshell 后处理器:读取文件
- python - 如果 jupyter notebooks 已清除输出,则编写 *checks* 的预提交
- c# - 在 Raspberry Pi 4 上运行 .net 核心控制台应用程序时出错
- javascript - onclick 捕获获取元素值 React
- functional-programming - 为什么 List 函数调用在 Scheme 中会返回运行时错误?
- html - 在Angular中将对象显示为HTML
- go - golang 比较时间大小
- encryption - 使用 (Pre)-Master-Secret 日志和/或 RSA 密钥无法使用 Wireshark 解密 TLS