पायथन, ओपनसीव्ही आणि पिलो (पीआयएल) सह प्रतिमा आकार (रुंदी आणि उंची) मिळवणे

व्यवसाय

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
Copied title and URL