Unter Bildgrößenänderung versteht man die Skalierung von Bildern. Die Skalierung ist in vielen Bildverarbeitungs- und maschinellen Lernanwendungen nützlich. Es hilft dabei, die Anzahl der Pixel in einem Bild zu reduzieren, und das hat mehrere Vorteile, z. Dies kann die Trainingszeit eines neuronalen Netzwerks verkürzen, da die Anzahl der Eingabeknoten umso höher ist, je größer die Anzahl der Pixel in einem Bild ist, was wiederum die Komplexität des Modells erhöht.
Es hilft auch beim Vergrößern von Bildern. Oftmals müssen wir die Größe des Bildes ändern, d. h. es entweder verkleinern oder vergrößern, um den Größenanforderungen gerecht zu werden. OpenCV bietet uns mehrere Interpolationsmethoden zur Größenänderung eines Bildes.
Auswahl der Interpolationsmethode zur Größenänderung:
Java-String enthält
- cv2.INTER_AREA: Dies wird verwendet, wenn wir ein Bild verkleinern müssen.
- cv2.INTER_CUBIC: Das ist langsam, aber effizienter.
- cv2.INTER_LINEAR: Dies wird hauptsächlich verwendet, wenn Zoomen erforderlich ist. Dies ist die Standardinterpolationstechnik in OpenCV.
Syntax: cv2.resize(source, dsize, dest, fx, fy, interpolation)
Parameter:
- Quelle: Eingabebild-Array (Einzelkanal, 8-Bit oder Gleitkomma) dsize: Größe des Ausgabearrays Ziel: Ausgabearray (Ähnlich den Abmessungen und dem Typ des Eingabebildarrays) [optional] fx: Skalierungsfaktor entlang der horizontale Achse [optional] fy: Skalierungsfaktor entlang der vertikalen Achse [optional] interpolation: Eine der oben genannten Interpolationsmethoden [optional]
Unten finden Sie den Code zur Größenänderung:
Python3
Pyspark SQL
Beispiele für Python-Programmierung
import> cv2> import> numpy as np> import> matplotlib.pyplot as plt> image>=> cv2.imread(r>'D:simsebsim21EB-ML-06-10-2022-Test-Output-15PERFORATIONOverkillFailBlister 1 2022-03-12 12-59-43.859 T0 M0 G0 3 PERFORATION Mono.bmp'>,>1>)> # Loading the image> half>=> cv2.resize(image, (>0>,>0>), fx>=> 0.1>, fy>=> 0.1>)> bigger>=> cv2.resize(image, (>1050>,>1610>))> stretch_near>=> cv2.resize(image, (>780>,>540>),> >interpolation>=> cv2.INTER_LINEAR)> Titles>=>[>'Original'>,>'Half'>,>'Bigger'>,>'Interpolation Nearest'>]> images>=>[image, half, bigger, stretch_near]> count>=> 4> for> i>in> range>(count):> >plt.subplot(>2>,>2>, i>+> 1>)> >plt.title(Titles[i])> >plt.imshow(images[i])> plt.show()> |
>
Java MVC
>
Ausgabe:

Notiz: Beachten Sie bei der Verwendung der Funktion cv2.resize(), dass das Tupel, das zur Bestimmung der Größe des neuen Bilds (in diesem Fall (1050, 1610)) übergeben wird, anders als erwartet der Reihenfolge (Breite, Höhe) folgt ( Höhe Breite).