Í Python eru nokkur söfn til að meðhöndla myndir, svo sem OpenCV og Pillow (PIL). Þessi hluti útskýrir hvernig á að fá myndstærð (breidd og hæð) fyrir hverja þeirra.
Þú getur fengið myndstærðina (breidd og hæð) sem tuple með því að nota lögun fyrir OpenCV og stærð fyrir kodda (PIL), en athugaðu að röð hvers og eins er mismunandi.
Eftirfarandi upplýsingar eru veittar hér.
- OpenCV
ndarray.shape
:Fáðu myndstærð (breidd, hæð)- Fyrir litmyndir
- Fyrir grátóna (einlita) myndir
- Pillow(PIL)
size
,width
,height
:Fáðu myndstærð (breidd, hæð)
Sjá eftirfarandi grein um hvernig á að fá stærð (getu) skráar í stað myndstærðar (stærð).
- Tengdar greinar:Að fá stærð skráar eða möppu (möppu) í Python
OpenCV:ndarray.shape:Fáðu myndstærð (breidd, hæð)
Þegar myndskrá er hlaðin inn í OpenCV, er farið með hana sem NumPy fylki ndarray, og stærð myndarinnar (breidd og hæð) er hægt að fá út frá eigindaforminu, sem gefur til kynna lögun ndarraysins.
Ekki aðeins í OpenCV, heldur líka þegar myndaskrá er hlaðin í Pillow og breytt í ndarray, er stærð myndarinnar sem ndarray táknar fengin með því að nota lögun.
Fyrir litmyndir
Þegar um er að ræða litmyndir er eftirfarandi þrívíddarmynd notaður.
- Röð (hæð)
- Röð (breidd)
- Litur (3)
lögun er tuple af ofangreindum þáttum.
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'>
Til að úthluta hverju gildi til breytu, pakkaðu túpunni upp eins og hér segir.
h, w, c = im.shape print('width: ', w) print('height: ', h) print('channel:', c) # width: 400 # height: 225 # channel: 3
_
Þegar túpa er pakkað upp, má venjulega úthluta ofangreindu sem breytu fyrir gildi sem verða ekki notuð eftir það. Til dæmis, ef fjöldi lita (fjöldi rása) er ekki notaður, er eftirfarandi notað.
h, w, _ = im.shape print('width: ', w) print('height:', h) # width: 400 # height: 225
Það er líka hægt að nota það eins og það er með því að tilgreina það með vísitölu (vísitölu) án þess að tengja það við breytu.
print('width: ', im.shape[1]) print('height:', im.shape[0]) # width: 400 # height: 225
(width, height)
Ef þú vilt fá þennan tuple geturðu notað sneið og skrifað eftirfarandi: cv2.resize(), osfrv. Ef þú vilt tilgreina rökin eftir stærð, notaðu þetta.
print(im.shape[1::-1]) # (400, 225)
Fyrir grátóna (einlita) myndir
Þegar um er að ræða grátóna (einlita) myndir er eftirfarandi tvívíddarmynd notaður.
- Röð (hæð)
- Röð (breidd)
Lögunin verður þessi tuple.
im_gray = cv2.imread('data/src/lena.jpg', cv2.IMREAD_GRAYSCALE) print(im_gray.shape) print(type(im_gray.shape)) # (225, 400) # <class 'tuple'>
Í grundvallaratriðum það sama og fyrir litmyndir.
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
Ef þú vilt úthluta breidd og hæð á breytur geturðu gert það á eftirfarandi hátt, hvort sem myndin er í lit eða grátóna.
h, w = im.shape[0], im.shape[1] print('width: ', w) print('height:', h) # width: 400 # height: 225
(width, height)
Ef þú vilt fá þennan tupel geturðu notað sneiðar og skrifað það þannig. Hægt er að nota eftirfarandi ritstíl hvort sem myndin er í lit eða grátóna.
print(im_gray.shape[::-1]) print(im_gray.shape[1::-1]) # (400, 225) # (400, 225)
Pillow(PIL):size, width, height:Fáðu myndstærð (breidd, hæð)
Myndhlutur sem fæst með því að lesa mynd með Pillow (PIL) hefur eftirfarandi eiginleika.
size
width
height
Stærðin er eftirfarandi tuple.(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
Þú getur líka fengið breidd og hæð í sömu röð sem eiginleika.width
,height
print('width: ', im.width) print('height:', im.height) # width: 400 # height: 225
Sama á við um grátóna (einlita) myndir.
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