Ich benutze Python 3 und die neueste Version von openCV. Ich versuche, ein Bild mit der Funktion zur Größenanpassung zu skalieren, aber nach der Größenänderung ist das Bild sehr verzerrt. Code:Größe eines Bildes ohne Verzerrung ändern OpenCV
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')
Das Originalbild wird 480 x 640 (RGB daher habe ich die 0 es in Graustufen zu erhalten)
Gibt es eine Möglichkeit, die Größe verändern könnte und vermeiden, dass die Verzerrung OpenCV oder andere Verwendung Bibliothek vielleicht? Ich beabsichtige, einen handschriftlichen Ziffernerkenner zu machen, und ich habe mein neurales Netz unter Verwendung der MNIST Daten trainiert, deshalb brauche ich das Bild, um 28x28 zu sein.
ohne jede Verzerrung helfen haben Sie 2 Möglichkeiten: a) Ernte Teil des Bildes es das gleiche Seitenverhältnis zu machen. b) Hinzufügen eines Teils des Bildes (z. B. schwarze Pixel) zu den Seiten der Bilder, um dasselbe Seitenverhältnis zu erhalten. Wenn Sie nicht das gleiche Seitenverhältnis haben, ist es nicht möglich, es ohne Verzerrung zu erhalten. – api55
Sie müssen sicherstellen, dass das Seitenverhältnis der neuen Größe dem Originalbild entspricht, und stellen Sie sicher, dass Sie eine geeignete Interpolationsmethode verwenden. –
Ich habe dem Originalbild schwarze Pixel hinzugefügt, um es 640x640 zu machen, aber immer noch wenn ich die Größe ändere Ich bekomme ein verzerrtes Bild. Was kann ich tun ? –