Python मध्ये OpenCV आणि Pillow (PIL) सारख्या प्रतिमा हाताळण्यासाठी अनेक लायब्ररी आहेत. त्या प्रत्येकासाठी प्रतिमेचा आकार (रुंदी आणि उंची) कसा मिळवायचा हा विभाग स्पष्ट करतो.
तुम्ही OpenCV साठी आकार आणि पिलो (PIL) साठी आकार वापरून ट्युपल म्हणून प्रतिमा आकार (रुंदी आणि उंची) मिळवू शकता, परंतु लक्षात ठेवा की प्रत्येकाचा क्रम भिन्न आहे.
खालील माहिती येथे दिली आहे.
- OpenCV
ndarray.shape
:प्रतिमा आकार (रुंदी, उंची) मिळवा- रंगीत चित्रांसाठी
- ग्रेस्केल (मोनोक्रोम) प्रतिमांसाठी
- Pillow(PIL)
size
,width
,height
:प्रतिमा आकार (रुंदी, उंची) मिळवा
प्रतिमा आकार (आकार) ऐवजी फाईलचा आकार (क्षमता) कसा मिळवावा याबद्दल पुढील लेख पहा.
OpenCV:ndarray.shape:प्रतिमा आकार (रुंदी, उंची) मिळवा
OpenCV मध्ये प्रतिमा फाइल लोड केल्यावर, ती NumPy अॅरे ndarray म्हणून समजली जाते आणि प्रतिमेचा आकार (रुंदी आणि उंची) विशेषता आकारावरून मिळवता येतो, जो ndarray चा आकार दर्शवतो.
केवळ OpenCV मध्येच नाही, तर जेव्हा एखादी प्रतिमा फाइल पिलोमध्ये लोड केली जाते आणि ndarray मध्ये रूपांतरित केली जाते, तेव्हा ndarray द्वारे दर्शविलेल्या प्रतिमेचा आकार आकार वापरून प्राप्त केला जातो.
रंगीत चित्रांसाठी
रंगीत प्रतिमांच्या बाबतीत, खालील त्रिमितीय ndarray वापरला जातो.
- पंक्ती (उंची)
- पंक्ती (रुंदी)
- रंग (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'>
व्हेरिएबलला प्रत्येक व्हॅल्यू नियुक्त करण्यासाठी, खालीलप्रमाणे ट्युपल अनपॅक करा.
h, w, c = im.shape print('width: ', w) print('height: ', h) print('channel:', c) # width: 400 # height: 225 # channel: 3
_
ट्यूपल अनपॅक करताना, वरील मूल्ये पारंपारिकपणे व्हेरिएबल म्हणून नियुक्त केली जाऊ शकतात जी त्यानंतर वापरली जाणार नाहीत. उदाहरणार्थ, रंगांची संख्या (चॅनेलची संख्या) वापरली नसल्यास, खालील वापरले जाते.
h, w, _ = im.shape print('width: ', w) print('height:', h) # width: 400 # height: 225
हे व्हेरिएबलला न देता निर्देशांक (इंडेक्स) द्वारे निर्दिष्ट करून देखील वापरले जाऊ शकते.
print('width: ', im.shape[1]) print('height:', im.shape[0]) # width: 400 # height: 225
(width, height)
जर तुम्हाला हे ट्यूपल मिळवायचे असेल, तर तुम्ही स्लाइस वापरू शकता आणि खालील लिहू शकता: cv2.resize(), इ. जर तुम्हाला आकारानुसार युक्तिवाद निर्दिष्ट करायचा असेल, तर हे वापरा.
print(im.shape[1::-1]) # (400, 225)
ग्रेस्केल (मोनोक्रोम) प्रतिमांसाठी
ग्रेस्केल (मोनोक्रोम) प्रतिमांच्या बाबतीत, खालील द्विमितीय ndarray वापरला जातो.
- पंक्ती (उंची)
- पंक्ती (रुंदी)
आकार हा 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'>
मूलत: रंगीत प्रतिमांप्रमाणेच.
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
जर तुम्हाला व्हेरिएबल्सला रुंदी आणि उंची नियुक्त करायची असेल, तर इमेज रंगात असो किंवा ग्रेस्केलमध्ये असो, तुम्ही खालीलप्रमाणे करू शकता.
h, w = im.shape[0], im.shape[1] print('width: ', w) print('height:', h) # width: 400 # height: 225
(width, height)
जर तुम्हाला हे ट्यूपल मिळवायचे असेल तर तुम्ही स्लाइस वापरू शकता आणि ते खालीलप्रमाणे लिहू शकता. प्रतिमा रंगीत असो वा ग्रेस्केल असो खालील लेखन शैली वापरली जाऊ शकते.
print(im_gray.shape[::-1]) print(im_gray.shape[1::-1]) # (400, 225) # (400, 225)
Pillow(PIL):size, width, height:प्रतिमा आकार (रुंदी, उंची) मिळवा
पिलो (पीआयएल) सह प्रतिमा वाचून प्राप्त केलेल्या इमेज ऑब्जेक्टमध्ये खालील गुणधर्म आहेत.
size
width
height
आकार खालील 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
तुम्ही विशेषता म्हणून अनुक्रमे रुंदी आणि उंची देखील मिळवू शकता.width
,height
print('width: ', im.width) print('height:', im.height) # width: 400 # height: 225
ग्रेस्केल (मोनोक्रोम) प्रतिमांसाठीही असेच आहे.
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