我有两个模块,我从每个模块(程序)导入1个元素/对象,我将其分配给其他一些变量,但我仍然收到此错误。 我的代码是:
from CBIR import feature_matrix_db
from experiment import feature_matrix_ip
from scipy.spatial import distance
i = 0
a_list = list()
b_list = list()
a_list.append(feature_matrix_ip)
while i < 50:
b_list.append(feature_matrix_db[i])
dist = distance(a_list,b_list)
print dist
i = i + 1
CBIR是一个包含蓝色,绿色和红色均值的程序,以及灰度共生矩阵特征,如对比度,能量,同质性和相关性(对于存储在数据库中的图像)。并且我使用'zip'函数将所有这些存储在一个数组中,变量名称为'feature_matrix_db'
实验是一个程序,包含蓝色,绿色和红色的平均值,以及灰度级共生矩阵特征,如对比度,能量,同质性和相关性(对于查询图像)。并且我使用'zip'函数将所有这些存储在一个数组中,变量名称为'feature_matrix_ip'
现在我正在尝试计算欧氏距离,它给了我错误:
10 while i < 50:
11 b_list.append(feature_matrix_db[i])
---> 12 dist = distance(a_list,b_list)
13 print dist
14 i = i + 1
TypeError: 'module' object is not callable
谢谢!
答案 0 :(得分:1)
模块是模块而非功能。
距离模块包含许多功能。你需要选择你想要的那个。例如,如果您想要(0, 0)
和(1, 2)
之间通常的欧几里德距离,请使用:
In [6]: from scipy.spatial import distance
In [7]: distance.sqeuclidean( (0, 0), (1, 2) )
Out[7]: 5
您可以阅读有关此模块here支持的众多“距离”功能的更多信息。