首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python-2.7 / SimpleCV - TypeError:“float”对象不能解释为索引

python-2.7 / SimpleCV - TypeError:“float”对象不能解释为索引
EN

Stack Overflow用户
提问于 2017-05-12 05:48:50
回答 1查看 264关注 0票数 0

--我正在尝试使用simpleCV和python2.7构建一个图像去翘曲工具。

下面的代码以前非常好(当我在Ubuntu16.04.1LTS上时),但是我最近更新到了Ubuntu17.04,现在我得到了这个错误。

这里是函数:

代码语言:javascript
复制
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

这就是我遇到的错误:

代码语言:javascript
复制
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

我的代码有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-12 06:58:46

np.zeros函数需要HdWd是整数,而不是浮动。早期版本的Python将静默地转换为整数,但较新的版本反而会出现错误。尝试添加以下内容:

代码语言:javascript
复制
Hd = int(Hd)
Wd = int(Wd)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43930156

复制
相关文章

相似问题

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