首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从一个小数据库中找到图片的最佳匹配项?

如何从一个小数据库中找到图片的最佳匹配项?
EN

Stack Overflow用户
提问于 2021-08-26 16:52:53
回答 1查看 48关注 0票数 1

我正在尝试给出一张图片作为输入,并从一个小的图片数据库(≈100图片)中找到与该输入最匹配的图片。

问题本身是这样的:在我的家庭作业中,我被分配了一系列的图表(如果有人感兴趣的话,是X射线衍射模式图表),我必须将这些图表与相应的化学元素或化合物进行匹配。因此,我想到的解决方案是将图形作为输入,让代码找到具有最大相似性的图形。这里有一个图表的例子:X-ray diffraction pattern graph

我只知道python的基础知识,不知道该查找什么,也不知道从哪里开始。有人能帮我指导我的研究吗?

EN

回答 1

Stack Overflow用户

发布于 2021-08-26 17:44:32

与其查看图像中的形状、高度、宽度和峰值数量,我认为你最好将数据库中的曲线“数字化”,这样你就可以有大约80个数字(每个角度一个),然后你就可以对一堆数字(例如熊猫或鲸鱼)进行统计分析,而不是对图像进行形态学(或其他)分析。

所以,我会把图中所有非蓝色的东西都变成白色(比方说),然后找出蓝色像素在每个x坐标上的最小/最大/平均y坐标。

您可以提前对数据库中的所有条目执行此操作,然后当出现新样本时,只需计算其特征并将其与预先计算的曲线进行匹配。

因此,具体来说,我建议:

代码语言:javascript
运行
复制
#!/usr/bin/env python3

import numpy as np
import cv2

# Load the image as BGR
im = cv2.imread('A8aHv.png')

# Convert to HSV colourspace to find blues
hsv = cv2.cvtColor(im, cv2.COLOR_BGR2HSV) 

# Set low and high limit for the tones we want to identify
lo = np.uint8([116,100,100])
hi = np.uint8([124,255,255]) 

# Mask all blue pixels
mask = cv2.inRange(hsv,lo,hi)

# Save mask
cv2.imwrite('result.png',mask)

# Find y-value of first non-zero element in each column
firstNonZero = (mask!=0).argmax(axis=0)
print(firstNonZero)

这里是y值,这是我建议存储在数据库中用于统计分析的值:

代码语言:javascript
运行
复制
array([  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
       275, 276, 275, 277, 279, 276, 275, 279, 281, 284, 286, 290, 294,
       293, 293, 294, 295, 295, 294, 293, 296, 296, 298, 298, 298, 299,
       301, 299, 297, 300, 299, 298, 298, 295, 292, 280, 279, 281, 283,
       287, 297, 299, 301, 302, 303, 308, 312, 312, 308, 309, 312, 312,
       310, 311, 313, 313, 309, 308, 308, 309, 311, 313, 311, 310, 311,
       312, 313, 312, 310, 310, 312, 310, 309, 309, 310, 312, 310, 310,
       311, 309, 308, 307, 309, 309, 307, 308, 308, 310, 311, 307, 307,
       308, 307, 309, 310, 312, 309, 310, 312, 312, 311, 311, 310, 311,
       310, 308, 308, 311, 311, 308, 309, 309, 311, 309, 308, 307, 309,
       309, 306, 306, 305, 302, 301, 302, 304, 304, 307, 303, 303, 304,
       304, 301, 303, 303, 302, 301, 301, 299, 298, 290, 285, 281, 282,
       284, 290, 291, 292, 289, 287, 287, 266, 261, 260, 259, 279, 288,
       294, 291, 292, 293, 292, 292, 293, 293, 297, 294, 293, 294, 288,
       289, 292, 295, 293, 292, 290, 290, 288, 290, 288, 287, 288, 291,
       292, 291, 293, 294, 293, 295, 297, 297, 295, 295, 294, 288, 285,
       284, 285, 286, 287, 289, 292, 294, 293, 284, 278, 222,   0,  78,
        75,  93, 283, 284, 284, 285, 286, 288, 288, 290, 291, 298, 295,
       296, 297, 298, 298, 298, 301, 302, 300, 300, 300, 301, 302, 300,
       301, 303, 303, 303, 303, 303, 303, 303, 306, 306, 306, 307, 306,
       304, 306, 307, 310, 307, 307, 305, 308, 307, 304, 306, 307, 307,
       309, 308, 308, 309, 310, 307, 305, 304, 304, 303, 301, 301, 304,
       306, 308, 311, 311, 309, 308, 310, 311, 310, 309, 308, 306, 305,
       305, 307, 309, 305, 307, 303, 296, 293, 293, 296, 303, 305, 304,
       310, 311, 296, 295, 294, 305, 308, 308, 309, 308, 309, 310, 310,
       310, 312, 312, 313, 313, 316, 316, 316, 316, 316, 317, 318, 318,
       318, 319, 313, 311, 310, 309, 303, 308, 310, 313, 314, 313, 310,
       311, 312, 314, 315, 318, 314, 315, 316, 316, 313, 319, 320, 314,
       315, 316, 316, 316, 316, 316, 315, 313, 312, 314, 314, 313, 315,
       318, 319, 319, 319, 318, 318, 317, 315, 316, 321, 319, 318, 319,
       320, 317, 316, 317, 318, 321, 318, 314, 316, 317, 318, 318, 310,
       309, 309, 315, 319, 320, 321, 319, 320, 320, 321, 322, 322, 319,
       321, 322, 322, 322, 321, 324, 322, 322, 322, 322, 322, 321, 323,
       324, 325, 323, 322, 322, 322, 323, 322, 321, 320, 320, 319, 318,
       317, 315, 298, 296, 300, 311, 320, 320, 320, 321, 322, 323, 323,
       326, 324, 322, 325, 325, 324, 325, 325, 324, 324, 325, 322, 322,
       323, 323, 323, 323, 324, 324, 323, 324, 322, 321, 322, 322, 319,
       319, 320, 320, 318, 317, 319, 320, 320, 317, 316, 313, 312, 315,
       315, 314, 315, 316, 321, 322, 322, 322, 320, 320, 321, 321, 323,
       323, 324, 325, 321, 320, 321, 322, 322, 324, 323, 322, 323, 324,
       324, 322, 322, 323, 323, 322, 322, 323, 321, 320, 320, 323, 324,
       323, 322, 323, 320, 319, 301, 297, 302, 305, 317, 318, 318, 317,
       315, 319, 318, 319, 318, 319, 320, 320, 321, 322, 320, 320, 318,
       320, 320, 318, 317, 315, 316, 316, 316, 315, 318, 319, 319, 321,
       321, 321, 320, 318, 318, 318, 316, 316, 317, 317, 318, 319, 318,
       319, 320, 321, 321, 320, 320, 320, 320, 318, 318, 319, 319, 318,
       318, 317, 319, 320, 317, 317, 321, 322, 319, 318, 318, 317, 317,
       318, 311, 310, 309, 309, 307, 284, 288, 299, 302, 318, 319, 314,
       315, 322, 321, 321, 321, 322, 322, 322, 322, 324, 323, 322,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68942568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档