
Dieser Artikel Genau, wie man die Bildgröße (Breite, Höhe) in Python mit OpenCV und Pillow (PIL) erhält.
Die Bildgröße kann als Tupel mit dem Attribut shape von ndarray in OpenCV und dem Attribut size von PIL.Image in Pillow (PIL) erhalten werden. Beachten Sie, dass die Reihenfolge von Breite und Höhe unterschiedlich ist.
- OpenCV: Bildgröße (Breite, Höhe) mit ndarray.shape abrufen
- Für Farbbilder
- Für Graustufenbilder (monochrom).
- Kissen (PIL): Holen Sie sich sterben Bildgröße (Breite, Höhe) mit Größe, Breite, Höhe
Informationen zur Größenänderung von Bildern finden Sie im folgenden Artikel.
Im folgenden Artikel erfahren SIE, wie SIE sterben Größe Einer Datei in Bytes ermitteln.
OpenCV: Bildgröße (Breite, Höhe) mit ndarray.shape abrufen
Wenn eine Bilddatei von OpenCV gelesen WIRD, WIRD SIE ALS NumPy-Array ndarray behandelt. Die Größe (Breite, Höhe) des Bildes kann dem Attribut shape entnommen werden.
Nicht auf OpenCV beschränkt, WIRD sterben Größe des durch ndarray dargestellten Bildes, z. B. wenn eine Bilddatei von Pillow und gelesen in ndarray WIRD konvertiert, durch Form erhalten.
Für Farbbilder
Bei Einem Farbbild handelt es sich um Ein 3D-Array aus Zeile (Höhe) x Spalte (Breite) x Farbe (3). Form ist ein Tupel von (Zeile (Höhe), Spalte (Breite), Farbe (3)).
import cv2
im = cv2.imread('data/src/lena.jpg')
print(type(im))
# <class 'numpy.ndarray'>
print(im.shape)
print(type(im.shape))
# (225, 400, 3)
# <class 'tuple'>
Wenn Sie jeden Wert einer Variablen zuweisen, entpacken Sie das Tupel wie folgt.
h, w, c = im.shape
print('width: ', w)
print('height: ', h)
print('channel:', c)
# width: 400
# height: 225
# channel: 3
Beim Entpacken eines Tupels can Werte, die danach nicht used Werden, per Konvention _ zugewiesen Werden. Ein Beispiel, bei dem sterben Anzahl der Farben (Anzahl der Kanäle) nicht verwendet WIRD, ist wie folgt.
h, w, _ = im.shape
print('width: ', w)
print('height:', h)
# width: 400
# height: 225
Natürlich kann SIE dies auch direkt per Index erhalten.
print('width: ', im.shape[1])
print('height:', im.shape[0])
# width: 400
# height: 225
Wenn Sie Tupel in der Reihenfolge (Breite, Höhe) erhalten möchten, können Sie Slice wie im folgenden Beispiel verwenden.
print(im.shape[1::-1])
# (400, 225)
If SIE sterben Größe auf cv2.resize() usw. setzen, muss sie (Breite, Höhe) sein.
Halbleiter zum Slicing finden Sie im folgenden Artikel.
Für Graustufenbilder (monochrom).
Bei Graustufenbildern (monochrom) handelt es sich um ein 2D-Array aus Zeilen (Höhe) x Spalten (Breite). Form ist ein Tupel von (Zeile (Höhe), Spalte (Breite)).
im_gray = cv2.imread('data/src/lena.jpg', cv2.IMREAD_GRAYSCALE)
print(im_gray.shape)
print(type(im_gray.shape))
# (225, 400)
# <class 'tuple'>
Im Prinzip dasselbe wie bei Farbbildern:
h, w = im_gray.shape
print('width: ', w)
print('height:', h)
# width: 400
# height: 225
print('width: ', im_gray.shape[1])
print('height:', im_gray.shape[0])
# width: 400
# height: 225
Wenn Sie Variablen Breite und Höhe zuweisen möchten, können Sie Folgendes auf Farb- oder Graustufenbilder anwenden:
h, w = im.shape[0], im.shape[1]
print('width: ', w)
print('height:', h)
# width: 400
# height: 225
Wenn Sie ein Tupel (Breite, Höhe) erhalten möchten, können Sie Slice verwenden. Das Bild kann entweder farbig oder in Graustufen sein, wenn es wie folgt geschrieben wird.
print(im_gray.shape[::-1])
print(im_gray.shape[1::-1])
# (400, 225)
# (400, 225)
Kissen (PIL): Holen Sie sich sterben Bildgröße (Breite, Höhe) mit Größe, Breite, Höhe
PIL.Image-Objekt, das durch Lesen eines Bilds mit Pillow (PIL) erhält WIRD, hat die Attribute size, width und height.
Größe ist ein (Breite, Höhe)-Tupel.
from PIL import Image
im = Image.open('data/src/lena.jpg')
print(im.size)
print(type(im.size))
# (400, 225)
# <class 'tuple'>
w, h = im.size
print('width: ', w)
print('height:', h)
# width: 400
# height: 225
Die Breite und Höhe kann auch mit den Attributen width und height ermittelt werden.
print('width: ', im.width)
print('height:', im.height)
# width: 400
# height: 225
Graustufenbilder (monochrome Bilder) können auf die gleiche Weise verarbeitet werden.
im_gray = Image.open('data/src/lena.jpg').convert('L')
print(im.size)
print('width: ', im.width)
print('height:', im.height)
# (400, 225)
# width: 400
# height: 225