【问题标题】:why 'module' object is not callable in python opencv?为什么“模块”对象在 python opencv 中不可调用?
【发布时间】:2014-04-11 13:45:00
【问题描述】:

我有两个模块,我从每个模块(程序)导入 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 是一个包含蓝色、绿色和红色平均值的程序,以及灰度共生矩阵特征,如对比度、能量、同质性和相关性(对于存储在 DB 中的图像)。我已经使用变量名'feature_matrix_db'的'zip'函数将所有这些存储在一个数组中

experiment 是一个包含蓝色、绿色和红色平均值的程序,以及灰度共生矩阵特征,如对比度、能量、同质性和相关性(对于查询图像)。我已经使用带有变量名称'feature_matrix_ip'的'zip'函数将所有这些存储在一个数组中

现在我正在尝试计算欧几里得距离,它给了我错误:

 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 

谢谢!

【问题讨论】:

    标签: python opencv euclidean-distance


    【解决方案1】:

    模块是模块而不是函数。

    距离模块包含许多功能。你需要选择你想要的那个。例如,如果您想要 (0, 0)(1, 2) 之间通常的欧几里得距离,则使用:

    In [6]: from scipy.spatial import distance
    In [7]: distance.sqeuclidean( (0, 0), (1, 2) )
    Out[7]: 5
    

    您可以阅读有关此模块here 支持的许多“距离”功能的更多信息。

    【讨论】:

      猜你喜欢
      • 2013-08-06
      • 2012-11-18
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多