Bildgröße ändern in Python
- Verwenden des OpenCV-Moduls zur Größenänderung von Bildern in Python
- Verwenden Sie das Scikit-Image-Modul, um die Größe von Bildern in Python zu ändern
- Erstellen Sie eine benutzerdefinierte Funktion, um die Größe von Bildern in Python zu ändern
In diesem Tutorial wird erläutert, wie Sie die Größe eines Bildes ändern können.
Im Wesentlichen werden wir die Größe des NumPy-Arrays ändern, das ein Bild darstellt. Es gibt keine direkte Funktionalität im NumPy-Modul, um dies zu erreichen. Wir können die Funktion resize()
nicht direkt verwenden, da sie die Achse ignoriert und keine Interpolation oder Extrapolation anwendet.
Beachten Sie, dass wir nach dem Ändern der Größe dieses Array mit geänderter Größe exportieren und als Bild speichern können. Dies gilt für alle unten diskutierten Methoden
Verwenden des OpenCV-Moduls zur Größenänderung von Bildern in Python
Das OpenCV-Modul wird in Python häufig für die Bildverarbeitung und Computer Vision verwendet. Um die Größe eines Bildes zu ändern, lesen wir zuerst das Bild mit der Funktion imread()
und ändern die Größe mit der Funktion resize()
wie unten gezeigt.
import cv2
import numpy as np
img = cv2.imread("filename.jpeg")
res = cv2.resize(img, dsize=(54, 140), interpolation=cv2.INTER_CUBIC)
Das imread()
gibt ein Array zurück, in dem das Bild gespeichert ist. Wir ändern die Größe mit der Funktion resize()
. Ein wichtiger Aspekt hierbei ist der Parameter interpolation
, der im Wesentlichen angibt, wie die Größe eines Bildes geändert werden soll. Es gibt verschiedene Möglichkeiten, die Größe des Bildes zu ändern, z. B. INTER_NEAREST
, INTER_LINEAR
und mehr. Es gibt keine beste Möglichkeit, diesen Parameter auszuwählen. es unterscheidet sich von Situation zu Situation.
Verwenden Sie das Scikit-Image-Modul, um die Größe von Bildern in Python zu ändern
Dieses Modul basiert auf der NumPy-Bibliothek und verfügt über die Funktion resize()
, mit der die Größe von Bildern effektiv geändert werden kann. Es kann auf einer Vielzahl von Kanälen arbeiten und sich gleichzeitig um Interpolation, Anti-Aliasing usw. kümmern.
Der folgende Code zeigt, wie diese Funktion verwendet wird.
from skimage.transform import resize
import matplotlib.pyplot as plt
im = plt.imread("filename.jpeg")
res = resize(im, (140, 54))
Beachten Sie, dass wir die Funktion matplotlib.pyplot.imread()
verwenden, um das Bild in der obigen Methode zu lesen. Es kann durch eine beliebige Methode Ihrer Wahl ersetzt werden.
Erstellen Sie eine benutzerdefinierte Funktion, um die Größe von Bildern in Python zu ändern
Wir können auch unsere eigene Funktion erstellen, um die Größe in Python zu ändern. Es sollte beachtet werden, dass diese Methode eine grundlegende Größenänderungsfunktion ist, unabhängig von Bibliotheken, und keine Interpolation und kein Anti-Aliasing durchführt, wie dies bei den obigen Methoden der Fall ist.
Der folgende Code demonstriert diese Funktion.
import matplotlib.pyplot as plt
def scale(im, nR, nC):
number_rows = len(im) # source number of rows
number_columns = len(im[0]) # source number of columns
return [
[im[int(number_rows * r / nR)][int(number_columns * c / nC)] for c in range(nC)]
for r in range(nR)
]
im = plt.imread("filename.jpeg")
res = scale(im, 30, 30)
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn