edge_coords=[(1.2,3.2), (1.2, 3.4)]for x,y in edge_coords: mask[y, x] = 1报错IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices修改使得当前float值成为有用索引
时间: 2024-01-22 17:01:38 浏览: 35
Canny_matlab.rar_canny_canny matlab_connect_get_coords_matlab中ge
5星 · 资源好评率100%
可以通过numpy的索引技巧来实现,将float类型的坐标转换为整数索引。示例代码如下:
```
import numpy as np
edge_coords = [(1.2, 3.2), (1.2, 3.4)]
mask = np.zeros((5, 5))
for x, y in edge_coords:
mask[int(y), int(x)] = 1
```
其中,`np.zeros((5, 5))`创建了一个5x5的全0数组作为`mask`,然后将`edge_coords`中的坐标转换为整数索引,赋值为1。注意numpy数组的索引顺序是先行后列,因此需要将`y`放在前面,`x`放在后面。
阅读全文