繁体   English   中英

python-2.7 | SimpleCV-TypeError:“ float”对象无法解释为索引

[英]python-2.7 | SimpleCV - TypeError: 'float' object cannot be interpreted as an index

我正在尝试使用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

我的代码有什么问题?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM