TypeError Traceback (most recent call last) Cell In[5], line 13 11 row_cent1 = cor_row_center[cor_ind] 12 col_cent1 = cor_col_center[cor_ind] ---> 13 img_corner = data_mat1[(row_cent1-N_pad): (row_cent1+N_pad+1), (col_cent1-N_pad): (col_cent1+N_pad+1) ] 14 if ((len(np.unique(img_corner))) >2)&(np.sum(img_corner ==1)< 0.8*(N_pad*2+1)**2) : 16 for pic_id2 in search_list: TypeError: slice indices must be integers or None or have an __index__ method
时间: 2024-03-29 07:35:18 浏览: 105
这个错误可能是由于 row_cent1
或 col_cent1
的值不是整型导致的。可以在调用 int()
函数将其强制转换成整型,例如:
img_corner = data_mat1[int(row_cent1-N_pad): int(row_cent1+N_pad+1), int(col_cent1-N_pad): int(col_cent1+N_pad+1)]
这样就可以将 row_cent1
和 col_cent1
强制转换成整型,避免这个错误。
相关问题
TypeError Traceback (most recent call last) Cell In[4], line 8 6 FAIL_CORNER = 0 7 data_mat1 = read_data(input_file,pic_id1,T_id,H_id) ----> 8 search_list = range( max((pic_id1-10),1),pic_id1)+ range(pic_id1+1, min((pic_id1 + 16),N_pic + 1 ) ) 10 for cor_ind in range(0,N_cor): 11 row_cent1 = cor_row_center[cor_ind] TypeError: unsupported operand type(s) for +: 'range' and 'range'
这个错误说明在第8行代码中,两个range函数之间使用了"+"号,但是range对象不支持加法运算。你可以将两个range对象转换成列表,然后再使用"+"号进行拼接,或者使用chain函数将两个range对象连接起来。例如:
search_list = list(range(max((pic_id1-10),1),pic_id1)) + list(range(pic_id1+1, min((pic_id1 + 16),N_pic + 1)))
或者:
from itertools import chain
search_list = list(chain(range(max((pic_id1-10),1),pic_id1),range(pic_id1+1, min((pic_id1 + 16),N_pic + 1))))
这样就可以避免这个错误了。
出错信息:TypeError Traceback (most recent call last) Cell In[6], line 26 24 N_RIG = min( L_img-1-row_cent1 , L_img-1-row_cent2) 25 N_BOT = min( L_img-1-col_cent1 , L_img-1-col_cent2) ---> 26 IMG_CHECK1 = data_mat1[(row_cent1-N_LEF): (row_cent1+N_RIG+1), (col_cent1-N_TOP): (col_cent1+N_BOT+1) ] 27 IMG_CHECK2 = data_mat2[(row_cent2-N_LEF): (row_cent2+N_RIG+1), (col_cent2-N_TOP): (col_cent2+N_BOT+1) ] 28 if np.array_equal(IMG_CHECK1,IMG_CHECK2) : TypeError: slice indices must be integers or None or have an index method如何修改
这个错误通常是因为切片索引不是整数或None类型,或者没有index方法。你需要检查以下变量的类型:row_cent1, N_LEF, N_RIG, col_cent1, N_TOP, N_BOT,确保它们都是整数类型。如果有任何一个是浮点数类型,你需要将其转换为整数类型。你可以使用int()函数来将浮点数转换为整数,例如:int(row_cent1),int(N_LEF)等等。如果这些变量已经是整数类型,那么你需要检查其他可能的原因,例如是否有其他地方的代码修改了这些变量的类型。
相关推荐

















