如何SQLite 多个关键字匹配查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何SQLite 多个关键字匹配查询相关的知识,希望对你有一定的参考价值。

参考技术A 没时间做,给出一种方案: 1、初始化SqlCommand、SqlConnection,获取数据表至DataTable,查询多次,本地缓冲,效率高点。 2、关键字分割为一维字符串数组keys[],n个关键字,用两个函数求出1至n个关键词的全部组合本回答被提问者和网友采纳 参考技术B 以下方案 1、初始化SqlCommand、SqlConnection,获取数据表至DataTable,查询多次,本地缓冲,效率高点。 2、关键字分割为一维字符串数组keys[],n个关键字,用两个函数求出1至n个关键词的全部组合. 参考技术C 没时间做,给出一种方案: 1、初始化SqlCommand、SqlConnection,获取数据表至DataTable,查询多次,本地缓冲,效率高点。 2、关键字分割为一维字符串数组keys[],n个关键字,用两个函数求出1至n个关键词的全部组合

通过将单个查询图像与多个图像的列表匹配来存储关键点索引

【中文标题】通过将单个查询图像与多个图像的列表匹配来存储关键点索引【英文标题】:Storing keypoints indexes from matching a single query image with a list of several images 【发布时间】:2017-07-20 14:55:49 【问题描述】:

我正在使用 OpenCV 3.3。 我想对 Vector Dmatch 类型的对象使用 OpenCV C++ 匹配函数。 目标是将来自单个查询图像的描述符与来自多个图像列表的描述符进行匹配。 我知道当这个函数用于将单个图像的描述符匹配到另一个单个图像的描述符时,每个图像上的每个匹配描述符对应的两个关键点索引都存储到向量中的每个 Dmatch 对象中。

例如,如果我这样做

Mat img_1=imread("path1...");
Mat img_2=imread("path2...");

vector<KeyPoint> keypoints_1, keypoints_2;
Mat descriptors_1, descriptors_2;

detector->detectAndCompute(img_1, Mat(), keypoints_1, descriptors_1 );
detector->detectAndCompute( img_2, Mat(), keypoints_2, descriptors_2 );

FlannBasedMatcher matcher;
vector< DMatch > matches;
matcher.match( descriptors_1, descriptors_2, matches );

那么如果我想访问匹配的关键点,对于每个 i 是一个低于 match.size() 的 int,那么

int idx=matches[i].trainIdx;
int idy=matches[i].queryIdx;

point2f matched_point1=keypoints1[idx].pt;
point2f matched_point2=keypoints2[idy].pt;

但是,当我尝试将单个查询图像中的描述符与多个图像列表中的描述符进行匹配时会发生什么,因为每个 Dmatch 对象只能包含两个索引,而我想匹配两个以上的图像。 即:

vector<Mat> descriptors1;
Mat descriptors2;

matcher.add( descriptors1 );
matcher.train();

matcher.match(descriptors2, matches );

这些索引是什么意思?

int idx=matches[i].trainIdx;
int idy=matches[i].queryIdx;

【问题讨论】:

【参考方案1】:

您可以在遍历图像时将所有火车图像的匹配索引值存储到一个列表中。然后,您可以选择适当的匹配点并随心所欲地使用它们。

【讨论】:

以上是关于如何SQLite 多个关键字匹配查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL多个关键字匹配和单个关键字匹配

通过将单个查询图像与多个图像的列表匹配来存储关键点索引

sqlite学习笔记2

在sqlite中多个LIKE

mysql根据关键词查询匹配多个字段时结果不正确

oracle 实现多字段匹配一个关键字查询语句