как достроить изображение черными полосами по бокам python

Пытаюсь добавить черные полосы по боками изображения. Для монотонного цвета получается:

import numpy as np
import cv2
    
# Задание изображения 640 х 480
width = 640
height = 480
img = np.array(np.vsplit(np.zeros(height*width*3).reshape(width*height,3),height))

# Задание зеленого цвета изображения
img[:,:,1] = 255

# Формирование черной полосы шириной 100 для добавления слева и справа изображения
width_nul = 100
nul = np.zeros(width_nul*height*3).reshape((width_nul*height,3))
nul = np.array(np.vsplit(nul, height))

# Добавление черных полос слева и справа
img = np.hstack((nul, img))
img = np.hstack((img, nul))
a = cv2.imshow("img", img)

Однако, когда пытаюсь добавить полосы к любой фотографии 'img.jpg', отображается белый квадрат:

import numpy as np
import cv2
    
# Чтение изображения 640 х 480
img = cv2.imread('img.jpg')

# Формирование черной полосы для добавления слева и справа изображения
width_nul = 100
height = 480
nul = np.zeros(width_nul*height*3).reshape((width_nul*height,3))
nul = np.array(np.vsplit(nul, height))

# Добавление черных полос слева и справа
img = np.hstack((nul, img))
img = np.hstack((img, nul))
a = cv2.imshow("img", img)

Ответы (1 шт):

Автор решения: Кирилл Малышев

Не забудьте поделить матрицу на 255 перед вызовом cv2.imshow

import cv2
import numpy as np

img = cv2.imread(r"image.png")
nul = np.zeros((img.shape[0], 50, 3))
img = np.hstack((nul, img))
img = np.hstack((img, nul))
cv2.imshow("img", img / 255)
→ Ссылка