Изображения MNIST имеют следующую форму: 28x28x1, ширина 28 пикселей, высота 28 пикселей и один цветовой канал, т.е. оттенки серого.
Если ваша модель принимает ту же входную форму, вы можете использовать следующее:
import cv2
userImage = cv2.imread('path_to_image/1.jpg')
# resize image to 28x28
userImage = cv2.resize(userImage,(28,28))
# convert to grayscale
userImage = cv2.cvtColor(userImage,cv2.COLOR_BGR2GRAY)
# normalize
userImage /= 255.
В зависимости от того, насколько велико ваше изображение, вы можете выбрать патч 28x28 вручную. В противном случае вы рискуете потерять качество изображения и, следовательно, информацию.
Если модель берет на вход вектор, вы можете использовать следующее, чтобы сгладить изображение перед подачей его на модель:
userImage = np.reshape(userImage,(784,))