Në Python ka disa biblioteka për trajtimin e imazheve, të tilla si OpenCV dhe Pillow (PIL). Ky seksion shpjegon se si të merrni madhësinë e imazhit (gjerësia dhe lartësia) për secilën prej tyre.
Ju mund të merrni madhësinë e imazhit (gjerësinë dhe lartësinë) si një tufë duke përdorur formën për OpenCV dhe madhësinë për Pillow (PIL), por vini re se rendi i secilës është i ndryshëm.
Informacioni i mëposhtëm jepet këtu.
- OpenCV
ndarray.shape
:Merrni madhësinë e imazhit (gjerësia, lartësia)- Për imazhe me ngjyra
- Për imazhet në shkallë gri (njëngjyrëshe).
- Pillow(PIL)
size
,width
,height
:Merrni madhësinë e imazhit (gjerësia, lartësia)
Shihni artikullin vijues se si të merrni madhësinë (kapacitetin) e një skedari në vend të madhësisë së imazhit (madhësia).
- Artikuj të ngjashëm:Marrja e madhësisë së një skedari ose drejtorie (dosje) në Python
OpenCV:ndarray.shape:Merrni madhësinë e imazhit (gjerësia, lartësia)
Kur një skedar imazhi ngarkohet në OpenCV, ai trajtohet si një varg grupi NumPy dhe madhësia e imazhit (gjerësia dhe lartësia) mund të merret nga forma e atributit, e cila tregon formën e ndarray.
Jo vetëm në OpenCV, por edhe kur një skedar imazhi ngarkohet në Pillow dhe konvertohet në një ndarray, madhësia e imazhit të përfaqësuar nga ndarray merret duke përdorur formën.
Për imazhe me ngjyra
Në rastin e imazheve me ngjyra, përdoret ndarja tredimensionale e mëposhtme.
- Rreshti (lartësia)
- Rreshti (gjerësia)
- Ngjyra (3)
forma është një tufë e elementeve të mësipërm.
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'>
Për t’i caktuar çdo vlerë një ndryshoreje, shpaketoni tuple si më poshtë.
h, w, c = im.shape print('width: ', w) print('height: ', h) print('channel:', c) # width: 400 # height: 225 # channel: 3
_
Kur shpaketoni një tuple, sa më sipër mund të caktohet në mënyrë konvencionale si një variabël për vlerat që nuk do të përdoren më pas. Për shembull, nëse numri i ngjyrave (numri i kanaleve) nuk përdoret, përdoret sa vijon.
h, w, _ = im.shape print('width: ', w) print('height:', h) # width: 400 # height: 225
Mund të përdoret gjithashtu si është duke e specifikuar me indeks (indeks) pa e caktuar atë në një ndryshore.
print('width: ', im.shape[1]) print('height:', im.shape[0]) # width: 400 # height: 225
(width, height)
Nëse dëshironi të merrni këtë tuple, mund të përdorni slice dhe të shkruani sa vijon: cv2.resize(), etj. Nëse dëshironi të specifikoni argumentin sipas madhësisë, përdorni këtë.
print(im.shape[1::-1]) # (400, 225)
Për imazhet në shkallë gri (njëngjyrëshe).
Në rastin e imazheve me shkallë gri (njëngjyrëshe), përdoret ndarja dydimensionale e mëposhtme.
- Rreshti (lartësia)
- Rreshti (gjerësia)
Forma do të jetë kjo tufë.
im_gray = cv2.imread('data/src/lena.jpg', cv2.IMREAD_GRAYSCALE) print(im_gray.shape) print(type(im_gray.shape)) # (225, 400) # <class 'tuple'>
Në thelb e njëjta gjë si për imazhet me ngjyra.
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
Nëse dëshironi t’u caktoni gjerësinë dhe lartësinë variablave, mund ta bëni këtë si më poshtë, pavarësisht nëse imazhi është me ngjyra ose në shkallë gri.
h, w = im.shape[0], im.shape[1] print('width: ', w) print('height:', h) # width: 400 # height: 225
(width, height)
Nëse dëshironi të merrni këtë tuple, mund të përdorni feta dhe ta shkruani si më poshtë. Stili i mëposhtëm i shkrimit mund të përdoret nëse imazhi është me ngjyra ose në shkallë gri.
print(im_gray.shape[::-1]) print(im_gray.shape[1::-1]) # (400, 225) # (400, 225)
Pillow(PIL):size, width, height:Merrni madhësinë e imazhit (gjerësia, lartësia)
Objekti i imazhit i marrë duke lexuar një imazh me Pillow(PIL) ka atributet e mëposhtme.
size
width
height
Madhësia është dyfishi i mëposhtëm.(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
Ju gjithashtu mund të merrni gjerësinë dhe lartësinë përkatësisht si atribute.width
,height
print('width: ', im.width) print('height:', im.height) # width: 400 # height: 225
E njëjta gjë vlen edhe për imazhet në shkallë gri (njëngjyrëshe).
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