Python 索引器错误:只有整数、片(`:`)、省略号(`…`)、numpy.newaxis(`None`)和整数或布尔数组是有效的索引错误
您好,我有一个坐标列表,可以选择图像中的某个感兴趣区域。但是当我将这些坐标传递给图像时,我得到了标题中的错误 代码如下:Python 索引器错误:只有整数、片(`:`)、省略号(`…`)、numpy.newaxis(`None`)和整数或布尔数组是有效的索引错误,python,python-3.x,list,opencv,for-loop,Python,Python 3.x,List,Opencv,For Loop,您好,我有一个坐标列表,可以选择图像中的某个感兴趣区域。但是当我将这些坐标传递给图像时,我得到了标题中的错误 代码如下: coord_list =['[55:130,190:707]', '[178:280,30:387]', '[181:273,424:739]', '[181:273,424:739]'] image1 = cv2.imread(r'C:\\Users\\User\\Desktop\\images\\Sample.jpg') image1 = cv2.resize(ima
coord_list =['[55:130,190:707]', '[178:280,30:387]', '[181:273,424:739]', '[181:273,424:739]']
image1 = cv2.imread(r'C:\\Users\\User\\Desktop\\images\\Sample.jpg')
image1 = cv2.resize(image,(1000,1000))
image_roi = image1[coord_list[0]]
cv2.imshow('img',image_roi)
cv2.waitKey(0)
它必须从列表中迭代,因为我必须对文件夹中的许多图像使用相同的坐标您不能直接使用字符串索引切片数组。您必须首先对其进行评估:
image_roi = eval('image1'+coord_list[0])
编辑:
作为对您的评论的回应,您可以使用numpy
来实现此目的。
这样,您就可以直接使用它,而无需使用eval()
但最好不要将坐标列表保存为strings为什么@joostblack@RahulRamesh我回复为编辑,因为这样我可以使用更多的字符。我使用我的图像进行测试,所以您需要将其更改回。
import cv2
import numpy as np
coord_list = [np.s_[55:130,190:707],np.s_[178:280,30:387],np.s_[181:273,424:739],np.s_[182:273,424:738] ]
image1 = cv2.imread('dog.jpg')
image1 = cv2.resize(image1,(1000,1000))
image_roi = image1[coord_list[0]]
cv2.imshow('img',image_roi)
cv2.waitKey(0)