Проблема не может быть воспроизведена ни в Python 3, ни в Python 2.
type = 17
означает, что ваше изображение имеет тип CV_8SC3
, что означает, что оно имеет три канала 8-битных значений со знаком.,Это странно, потому что это означает, что ваше преобразование в оттенки серого не сработало.
Что вы можете сделать, чтобы отладить это, так это следить за формой и типом d ваших массивов.Например, вот так:
im = numpy.asarray(pil_image)
print (im.shape, im.dtype)
image = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
print (image.shape, image.dtype)
Секунда print
обычно имеет два числа и uint8
в качестве типа.Если у вас другой вывод, это может указывать на корень вашей проблемы.