A Python hi ha diverses biblioteques per manejar imatges, com ara OpenCV i Pillow (PIL). En aquesta secció s’explica com obtenir la mida de la imatge (amplada i alçada) per a cadascun d’ells.
Podeu obtenir la mida de la imatge (amplada i alçada) com una tupla utilitzant la forma per a OpenCV i la mida per a Pillow (PIL), però tingueu en compte que l’ordre de cadascun és diferent.
La informació següent es proporciona aquí.
- OpenCV
ndarray.shape
:Obteniu la mida de la imatge (amplada, alçada)- Per a imatges en color
- Per a imatges en escala de grisos (monocromes).
- Pillow(PIL)
size
,width
,height
:Obteniu la mida de la imatge (amplada, alçada)
Consulteu l’article següent sobre com obtenir la mida (capacitat) d’un fitxer en lloc de la mida de la imatge (mida).
- Articles relacionats:Obtenció de la mida d’un fitxer o directori (carpeta) en Python
OpenCV:ndarray.shape:Obteniu la mida de la imatge (amplada, alçada)
Quan es carrega un fitxer d’imatge a OpenCV, es tracta com un ndarray de matriu NumPy, i la mida de la imatge (amplada i alçada) es pot obtenir a partir de la forma de l’atribut, que indica la forma del ndarray.
No només a OpenCV, sinó també quan es carrega un fitxer d’imatge a Pillow i es converteix en un ndarray, la mida de la imatge representada pel ndarray s’obté mitjançant la forma.
Per a imatges en color
En el cas de les imatges en color, s’utilitza el següent ndarray tridimensional.
- Fila (alçada)
- Fila (amplada)
- Color (3)
La forma és una tupla dels elements anteriors.
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'>
Per assignar cada valor a una variable, descomprimiu la tupla de la manera següent.
h, w, c = im.shape print('width: ', w) print('height: ', h) print('channel:', c) # width: 400 # height: 225 # channel: 3
_
Quan es desempaqueta una tupla, l’anterior es pot assignar convencionalment com a variable per a valors que no s’utilitzaran després. Per exemple, si no s’utilitza el nombre de colors (nombre de canals), s’utilitza el següent.
h, w, _ = im.shape print('width: ', w) print('height:', h) # width: 400 # height: 225
També es pot utilitzar tal qual especificant-lo per índex (índex) sense assignar-lo a una variable.
print('width: ', im.shape[1]) print('height:', im.shape[0]) # width: 400 # height: 225
(width, height)
Si voleu obtenir aquesta tupla, podeu utilitzar slice i escriure el següent: cv2.resize(), etc. Si voleu especificar l’argument per mida, feu servir això.
print(im.shape[1::-1]) # (400, 225)
Per a imatges en escala de grisos (monocromes).
En el cas d’imatges en escala de grisos (monocromes), s’utilitza el següent ndarray bidimensional.
- Fila (alçada)
- Fila (amplada)
La forma serà aquesta tupla.
im_gray = cv2.imread('data/src/lena.jpg', cv2.IMREAD_GRAYSCALE) print(im_gray.shape) print(type(im_gray.shape)) # (225, 400) # <class 'tuple'>
Bàsicament el mateix que per a les imatges en color.
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
Si voleu assignar l’amplada i l’alçada a les variables, podeu fer-ho de la següent manera, tant si la imatge és en color com en escala de grisos.
h, w = im.shape[0], im.shape[1] print('width: ', w) print('height:', h) # width: 400 # height: 225
(width, height)
Si voleu obtenir aquesta tupla, podeu utilitzar rodanxes i escriure-la de la següent manera. L’estil d’escriptura següent es pot utilitzar tant si la imatge és en color com en escala de grisos.
print(im_gray.shape[::-1]) print(im_gray.shape[1::-1]) # (400, 225) # (400, 225)
Pillow(PIL):size, width, height:Obteniu la mida de la imatge (amplada, alçada)
L’objecte d’imatge obtingut llegint una imatge amb Pillow(PIL) té els atributs següents.
size
width
height
La mida és la següent tupla.(width, height)
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
També podeu obtenir l’amplada i l’alçada respectivament com a atributs.width
,height
print('width: ', im.width) print('height:', im.height) # width: 400 # height: 225
El mateix passa amb les imatges en escala de grisos (monocromes).
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
A Python hi ha diverses biblioteques per manejar imatges, com ara OpenCV i Pillow (PIL). En aquesta secció s’explica com obtenir la mida de la imatge (amplada i alçada) per a cadascun d’ells.
Podeu obtenir la mida de la imatge (amplada i alçada) com una tupla utilitzant la forma per a OpenCV i la mida per a Pillow (PIL), però tingueu en compte que l’ordre de cadascun és diferent.
La informació següent es proporciona aquí.
- OpenCV
ndarray.shape
:Obteniu la mida de la imatge (amplada, alçada)- Per a imatges en color
- Per a imatges en escala de grisos (monocromes).
- Pillow(PIL)
size
,width
,height
:Obteniu la mida de la imatge (amplada, alçada)
Consulteu l’article següent sobre com obtenir la mida (capacitat) d’un fitxer en lloc de la mida de la imatge (mida).
- Articles relacionats:Obtenció de la mida d’un fitxer o directori (carpeta) en Python
OpenCV:ndarray.shape:Obteniu la mida de la imatge (amplada, alçada)
Quan es carrega un fitxer d’imatge a OpenCV, es tracta com un ndarray de matriu NumPy, i la mida de la imatge (amplada i alçada) es pot obtenir a partir de la forma de l’atribut, que indica la forma del ndarray.
No només a OpenCV, sinó també quan es carrega un fitxer d’imatge a Pillow i es converteix en un ndarray, la mida de la imatge representada pel ndarray s’obté mitjançant la forma.
Per a imatges en color
En el cas de les imatges en color, s’utilitza el següent ndarray tridimensional.
- Fila (alçada)
- Fila (amplada)
- Color (3)
La forma és una tupla dels elements anteriors.
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'>
Per assignar cada valor a una variable, descomprimiu la tupla de la manera següent.
h, w, c = im.shape print('width: ', w) print('height: ', h) print('channel:', c) # width: 400 # height: 225 # channel: 3
_
Quan es desempaqueta una tupla, l’anterior es pot assignar convencionalment com a variable per a valors que no s’utilitzaran després. Per exemple, si no s’utilitza el nombre de colors (nombre de canals), s’utilitza el següent.
h, w, _ = im.shape print('width: ', w) print('height:', h) # width: 400 # height: 225
També es pot utilitzar tal qual especificant-lo per índex (índex) sense assignar-lo a una variable.
print('width: ', im.shape[1]) print('height:', im.shape[0]) # width: 400 # height: 225
(width, height)
Si voleu obtenir aquesta tupla, podeu utilitzar slice i escriure el següent: cv2.resize(), etc. Si voleu especificar l’argument per mida, feu servir això.
print(im.shape[1::-1]) # (400, 225)
Per a imatges en escala de grisos (monocromes).
En el cas d’imatges en escala de grisos (monocromes), s’utilitza el següent ndarray bidimensional.
- Fila (alçada)
- Fila (amplada)
La forma serà aquesta tupla.
im_gray = cv2.imread('data/src/lena.jpg', cv2.IMREAD_GRAYSCALE) print(im_gray.shape) print(type(im_gray.shape)) # (225, 400) # <class 'tuple'>
Bàsicament el mateix que per a les imatges en color.
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
Si voleu assignar l’amplada i l’alçada a les variables, podeu fer-ho de la següent manera, tant si la imatge és en color com en escala de grisos.
h, w = im.shape[0], im.shape[1] print('width: ', w) print('height:', h) # width: 400 # height: 225
(width, height)
Si voleu obtenir aquesta tupla, podeu utilitzar rodanxes i escriure-la de la següent manera. L’estil d’escriptura següent es pot utilitzar tant si la imatge és en color com en escala de grisos.
print(im_gray.shape[::-1]) print(im_gray.shape[1::-1]) # (400, 225) # (400, 225)
Pillow(PIL):size, width, height:Obteniu la mida de la imatge (amplada, alçada)
L’objecte d’imatge obtingut llegint una imatge amb Pillow(PIL) té els atributs següents.
size
width
height
La mida és la següent tupla.(width, height)
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
També podeu obtenir l’amplada i l’alçada respectivament com a atributs.width
,height
print('width: ', im.width) print('height:', im.height) # width: 400 # height: 225
El mateix passa amb les imatges en escala de grisos (monocromes).
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