在mask转为rle编码时,runs会变为长度为奇数的原因可能是什么呢?

在mask转为rle编码时,runs会变为长度为奇数的原因可能是什么呢?

mask(img) 是01二维矩阵
def rle_encode(img):
    pixels = img.T.flatten()
    pixels[0] = 0
    pixels[-1] = 0
    runs = np.where(pixels[1:] != pixels[:-1])[0] + 2
    #  print(runs.shape) should be even, but i got an odd sometimes
#     if runs.shape[0]%2!=0:
#         runs = runs[:-1]
    runs[1::2] -= runs[::2]
    
    return ' '.join(str(x) for x in runs)
导致后续runs[1::2] -= runs[::2] 无法广播
注释掉的内容是我的补救方法