索引器错误:在python中用作索引的数组必须是整数(或布尔)类型

索引器错误:在python中用作索引的数组必须是整数(或布尔)类型,python,opencv,Python,Opencv,我已将图像读取到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):

我已将图像读取到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]
错误仍然存在。

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

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