python-2.7 | SimpleCV - TypeError:'float'对象不能被解释为索引

Posted

技术标签:

【中文标题】python-2.7 | SimpleCV - TypeError:\'float\'对象不能被解释为索引【英文标题】:python-2.7 | SimpleCV - TypeError: 'float' object cannot be interpreted as an indexpython-2.7 | SimpleCV - TypeError:'float'对象不能被解释为索引 【发布时间】:2017-10-11 07:50:03 【问题描述】:

我正在尝试使用 simpleCV 构建图像去扭曲工具 和python2.7

之前的代码运行良好(当我在 Ubuntu 16.04.1 LTS 上时) 但是我最近更新到了 Ubuntu 17.04,现在我收到了这个错误。

功能如下:

def buildMap(Ws, Hs, Wd, Hd, R1, R2, Cx, Cy):
    map_x = np.zeros((Hd, Wd),np.float32)
    map_y = np.zeros((Hd, Wd),np.float32)
    rMap = np.linspace(R1, R1 + (R2 - R1), Hd)
    thetaMap = np.linspace(0, 0 + float(Wd) * 2.0 * np.pi, Wd)
    sinMap = np.sin(thetaMap)
    cosMap = np.cos(thetaMap)

    for y in xrange(0, int(Hd-1)):
        map_x[y] = Cx + rMap[y] * sinMap
        map_y[y] = Cy + rMap[y] * cosMap

    return map_x, map_y

这是我得到的错误:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "./fy360.py", line 189, in new_dewarp
    xmap, ymap = buildMap(Ws, Hs, Wd, Hd, R1, R2, Cx, Cy)
  File "./fy360.py", line 122, in buildMap
    map_x = np.zeros((Hd, Wd),np.float32)
TypeError: 'float' object cannot be interpreted as an index

我的代码有什么问题?

【问题讨论】:

因为你不能通过 index[5.4] 并获得你需要像这样的整数 index[1or2] 的值 传递给此函数的HdWd 是浮点数而不是整数。 @DanielF 、@Exparator HdWd 的值是 image frame sizes,所以将它们近似为整数会影响准确性,你不觉得吗? 图像帧大小(以像素为单位)?这些总是整数。 16.5 像素宽的图像会是什么样子? 【参考方案1】:

np.zeros 函数需要 HdWd 是整数,而不是浮点数。以前版本的 Python 会默默地转换为整数,但新版本会给出错误。尝试添加:

Hd = int(Hd)
Wd = int(Wd)

【讨论】:

天哪,我的印象是使用浮点值更准确,结果更好。

以上是关于python-2.7 | SimpleCV - TypeError:'float'对象不能被解释为索引的主要内容,如果未能解决你的问题,请参考以下文章

从一组图像中检测明显不同的图像,例如使用 OpenCV 或 SimpleCV

Ubuntu-Python2.7安装 scipy,numpy,matplotlib

Ubuntu-Python2.7安装 scipy,numpy,matplotlib (转)

如果未找到匹配项,Python 2.7 将仅用一行退出 while 循环

TypeError:不能将序列乘以“float”类型的非整数(python 2.7)

如何将字符串中的数字转换为 python 2.7 中的完整函数?