gpt4 book ai didi

python - IndexError:用作索引的数组在python中必须为整数(或 bool 值)类型

转载 作者:行者123 更新时间:2023-12-02 17:32:13 25 4
gpt4 key购买 nike

我已将图像读取到numpy数组。我对每个像素进行了一些转换,然后需要检查生成的像素坐标是什么。如果它们为负,则x坐标大于图像中的行数或y坐标大于图像中的列数,我需要进行适当的操作。

image = cv2.imread('image.png')
rows,columns,ch = np.shape(image)

for c in range(ch):
for px in range(0,rows):
for py in range(0,columns):
ip_vector = np.array([px,py])
ip_vector.shape=(2,1)
op_vector = np.dot(trans_array,ip_vector)
op_vector=np.around(op_vector)
[px_dash,py_dash]=op_vector
if px_dash >= 0 and px_dash < rows and py_dash >= 0 and py_dash<columns:
new_image[px_dash,py_dash,c]=image[px,py,c]

new_image[px_dash,py_dash,c]=image[px,py,c] IndexError: arrays used as indices must be of integer (or boolean) type



我试过了
image = image.astype(int)
new_image = new_image.astype(int)

和错误仍然存​​在。

最佳答案

np.around()的输出类型为float。您不能将浮点数用于索引数组。
转换输出,它应该可以工作:

new_image[int(px_dash),int(py_dash),c] = image[px,py,c]

关于python - IndexError:用作索引的数组在python中必须为整数(或 bool 值)类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54887891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com