Gibt es eine Möglichkeit, die Größe von Bildern jeder Form oder Größe zu ändern, um [500x500]
zu sagen, aber das Seitenverhältnis des Bildes beizubehalten, den leeren Raum mit weiß / schwarz füllen zu füllen?
Also sagen wir, dass das Bild [2000x1000]
ist, nachdem die Größe auf [500x500]
geändert wurde und das eigentliche Bild selbst [500x250]
ist, wobei 125
jede Seite weiß / schwarz ist.
In etwa so:
Eingabe
Ausgabe
BEARBEITEN
Ich möchte das Bild nicht einfach in einem quadratischen Fenster anzeigen, sondern das Bild in diesen Zustand ändern und dann in einer Datei speichern, um eine Sammlung von Bildern gleicher Größe mit möglichst geringer Bildverzerrung zu erstellen.
Das einzige, was mir auffiel, eine ähnliche Frage zu stellen, war dieser Beitrag , aber in php
.
Nicht vollständig optimiert, aber Sie können dies versuchen:
BEARBEITEN behandelt die Zielgröße, die nicht 500x500
Pixel ist, und wickelt sie als Funktion auf.
Alirezas Antwort ist gut, aber ich habe den Code etwas modifiziert, so dass ich die vertikalen Ränder nicht hinzufüge, wenn das Bild vertikal passt, und ich füge keine horizontalen Ränder hinzu, wenn das Bild horizontal passt (das ist näher an der ursprünglichen Anfrage) ):
%Vor%Tags und Links c++ opencv image image-resizing