У меня возникла похожая проблема, и я считаю, что ваша проблема связана с областью интересов (roi), которую вы используете. Вкратце: вы попытались выбрать интересующую область, которая содержала бы координаты, которых не было в исходном изображении.
В OpenCV вы определяете ROI следующим образом (при условии, что вы уже открыли изображение с именем "изображение")
roi = image[y1:y2,x1:x2]
Здесь координата (x1, y1) будет относиться к верхнему левому углу изображения, а координата (x2, y2) будет нижним правым углом изображения.
В своем коде вы смешали ширину (x) и высоту (y), перечислив сначала x (ширину). OpenCV делает их противоположным образом, сначала с помощью переменной y (высоты). Вам следует изменить свою переменную roi на следующее:
roi = img[0:height,0:width]
Это создаст область интереса, которая будет размером всего вашего изображения.