首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中从其值(欧氏距离)中的图像检索

python中从其值(欧氏距离)中的图像检索
EN

Stack Overflow用户
提问于 2014-03-08 09:21:12
回答 1查看 991关注 0票数 2

我在找人帮忙。我计算了欧几里得距离,并进行了排序。现在我得把欧几里德距离最小的图像取回来!我不知道该怎么做。

代码语言:javascript
复制
import cv2
import CBIR as cb
import experiment as ex
from scipy.spatial import distance

result_list = list()
i = 0
a_list = list()
b_list = list()
a_list.append(ex.feature_matrix_ip)
while i < 50:
   b_list.append(cb.feature_matrix_db[i])
   dist = distance.euclidean(a_list,b_list[i])
   result_list.append(dist)
   i = i + 1 
result_list.sort()

while i <50:
    cv2.imshow('',result_list[i])
    cv2.waitKey(0)
    cv2.destroyAllWindows()

CBIR和实验是两个不同的模块,CBIR将返回bgr均值和glcm值,而对于查询图像,实验将返回相同的值。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-08 09:30:48

在Python中,使用numpy很容易排序并获得距离较小的图像:

代码语言:javascript
复制
import numpy as np

image_ids = ['A','B','C','D'] #Identifiers for each image. 
distances = np.array([0.01,0.2,0.3,0.001]) #Computed distances for each image in the image_ids array


ordered_indexes = np.argsort(distances)
for i,least_distance_id in enumerate(ordered_indexes):
    print "Position:"+ str(i)+ " ID:"+image_ids[least_distance_id] + " Distance:"+str(distances[least_distance_id]) #Print the ids and distances
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22267467

复制
相关文章

相似问题

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