Redimensionner une image sans distorsion OpenCV

Je suis à l'aide de python 3 et la dernière version d'openCV. Je suis en train de redimensionner une image à l'aide de la fonction de redimensionnement donnés, mais après redimensionnement de l'image est très déformée. Code :

import cv2
file = "/home/tanmay/Desktop/test_image.png"
img = cv2.imread(file , 0)
print(img.shape)
cv2.imshow('img' , img)
k = cv2.waitKey(0)
if k == 27:
    cv2.destroyWindow('img')
resize_img = cv2.resize(img  , (28 , 28))
cv2.imshow('img' , resize_img)
x = cv2.waitKey(0)
if x == 27:
    cv2.destroyWindow('img')

L'image d'origine est de 480 x 640 (RVB donc j'ai passé le 0 à niveaux de gris)

Est-il possible de le redimensionner et éviter la distorsion à l'aide d'OpenCV ou toute autre bibliothèque peut-être? J'ai l'intention de faire un manuscrites chiffres logiciel de reconnaissance et j'ai formé mon réseau de neurones utilisant les données MNIST donc j'ai besoin de l'image pour être 28x28.

  • Sans aucune distorsion, vous avez 2 options: a) des cultures de la partie de l'image pour qu'elle le même aspect. b) ajouter une partie de l'image (par exemple, les pixels noirs) sur les côtés des images pour en faire le même aspect. Si vous n'avez pas le même rapport d'aspect, il ne sera pas possible de l'obtenir sans distorsion.
  • Vous devez vous assurer que le ratio d'aspect de la nouvelle dimension de passe est le même que l'image d'origine et assurez-vous que vous utilisez un adapté de la méthode d'interpolation
  • J'ai ajouté les pixels noirs de l'image d'origine pour en faire 640x640 mais encore quand j'redimensionner, je reçois une image déformée. Que puis-je faire ?
  • La spécification de l'interpolation, il fixe. Merci.